#base32 #encode-decode #decode #encode #python

bin+lib z-base-32

z-base-32: 人类友好的 base-32 编码

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 编码

Download history 789/week @ 2024-04-07 873/week @ 2024-04-14 653/week @ 2024-04-21 471/week @ 2024-04-28 351/week @ 2024-05-05 495/week @ 2024-05-12 493/week @ 2024-05-19 766/week @ 2024-05-26 595/week @ 2024-06-02 904/week @ 2024-06-09 665/week @ 2024-06-16 498/week @ 2024-06-23 362/week @ 2024-06-30 282/week @ 2024-07-07 637/week @ 2024-07-14 876/week @ 2024-07-21

2,173 每月下载量
用于 22 个 crate (3 直接)

MIT 许可证

15KB
217

z-base-32

ci

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