5 个版本
0.1.4 | 2024年2月27日 |
---|---|
0.1.3 | 2023年11月21日 |
0.1.2 | 2021年8月25日 |
0.1.1 | 2021年8月25日 |
0.1.0 | 2021年8月19日 |
#536 in 编码
2,173 每月下载量
用于 22 个 crate (3 直接)
15KB
217 行
z-base-32
z-base-32
是一种面向人类的基础32编码。
Rust
包
安装
cargo add z-base-32
API
该库公开了以下签名和错误类型的两个函数
pub fn encode(input: &[u8]) -> String;
pub fn decode(input: &str) -> Result<Vec<u8>, DecodeError>;
pub struct DecodeError;
示例
use zbase32::{encode, decode};
fn main() {
assert_eq!(encode(b"foo"), "c3zs6".to_string());
assert_eq!(Ok(b"foo"), decode("c3zs6".to_string()));
assert_eq!(decode(&encode(b"foo")).unwrap(), b"foo")
}
命令行界面
此项目还提供了一个与知名 base64
命令类似界面的 CLI 工具。
安装
要安装 z-base-32
CLI,您可以从源代码构建或从 发布版 下载预构建的二进制文件。
cargo install --features cli z-base-32
示例
$ zbase32 -h
z-base-32: human-oriented base-32 encoding
Usage: zbase32 [OPTIONS] [FILE]
Arguments:
[FILE] File to encode or decode
Options:
-d, --decode Decode data
-w, --wrap <WRAP> Wrap encoded lines after COLS character [default: 76]
-h, --help Print help
-V, --version Print version
Python
安装
z-base-32
软件包在 PyPI 上发布。使用以下命令安装它
pip install z-base-32
构建
此 crate 可以使用 python
功能标志进行编译,此时它将生成 Python 绑定。要构建 Python 轮子,请使用 maturin
maturin build
API
def encode(input: bytes) -> str:
def decode(input: str) -> bytes:
class DecodeError(Exception):
示例
import zbase32
assert zbase32.encode(b'foo') == 'c3zs6'
assert zbase32.decode('c3zs6') == b'foo'
try:
zbase32.decode('invalid@char')
except zbase32.DecodeError as e:
print(e)
参考
依赖项
~0–6MB
~20K SLoC