#encoded #classic #encoder

bin+lib base1000

A a text encoder based on the "Thousand Character Classic"

2 releases

Uses new Rust 2024

new 0.1.1 Mar 26, 2025
0.1.0 Mar 26, 2025

#1 in #encoded

Apache-2.0

15KB
234 lines

Base1000 Thousand Character Classic Encoder

Base1000 is a text encoder based on the "Thousand Character Classic", supporting encoding any text into a sequence of "Thousand Character Classic" characters and decoding it back to the original text.

Features

  • Encoding: Encode input text into a sequence of "Thousand Character Classic" characters.
  • Decoding: Decode a sequence of "Thousand Character Classic" characters back to the original text.
  • Python Extension Module: Provides a Python interface for direct usage in Python.
  • Command Line Tool: Offers a simple and easy-to-use CLI tool.

Installation

Build with Cargo

Default enabled features (clap, encode, decode)

cargo build --release

Enable Features

  • clap: Enables command-line tool functionality. Enable it with the following command:

    cargo build --release --features clap
    
  • pyo3: Enables building the Python extension module. Enable it with the following command:

    cargo build --release --features pyo3
    
  • encode: Enables text encoding functionality. Enable it with the following command:

    cargo build --release --features encode
    
  • decode: Enables text decoding functionality. Enable it with the following command:

    cargo build --release --features decode
    
  • Enable multiple features simultaneously:

    cargo build --release --features "clap pyo3 encode decode"
    

Build Python Extension with Maturin

maturin build --release

Usage

Command Line Tool

Encoding

base1000 -e "114514"

Decoding

base1000 -d "夜裳移柰梧"

Python Extension

Installation

pip install .

Example

from base1000 import base1000

# Encoding
encoded = base1000.encode("114514")
print(encoded)

# Decoding
decoded = base1000.decode(encoded)
print(decoded)

Testing

Run unit tests:

cargo test

Project Structure

  • src/lib.rs: Core library implementation.
  • src/main.rs: Command-line tool entry point.
  • base1000/__main__.py: Python CLI implementation.
  • base1000/base1000.pyi: Python type hint file.

Dependencies

~8–17MB
~208K SLoC