9 个版本 (5 个重大更新)

0.6.2 2019年7月28日
0.6.1 2019年7月23日
0.5.1 2019年7月23日
0.4.0 2019年7月22日
0.1.0 2019年7月19日

#2235编码

Download history 1430/week @ 2024-03-13 1688/week @ 2024-03-20 1810/week @ 2024-03-27 1593/week @ 2024-04-03 1721/week @ 2024-04-10 2181/week @ 2024-04-17 1871/week @ 2024-04-24 1457/week @ 2024-05-01 1315/week @ 2024-05-08 1295/week @ 2024-05-15 1868/week @ 2024-05-22 1025/week @ 2024-05-29 1171/week @ 2024-06-05 1063/week @ 2024-06-12 1441/week @ 2024-06-19 1532/week @ 2024-06-26

5,380 每月下载量
11 个crate中(6个直接使用)

MIT/Apache

165KB
3K SLoC

radix64

Docs build status

快速简便的 base64 编码和解码。

用法

使用标准字母表进行编码和解码

use radix64::STD;
let encoded = STD.encode("my message");
let decoded = STD.decode(&encoded).unwrap();
assert_eq!("my message".as_bytes(), &decoded);

使用 URL 安全字母表进行编码和解码

use radix64::URL_SAFE;
let encoded = URL_SAFE.encode("my message");
let decoded = URL_SAFE.decode(&encoded).unwrap();
assert_eq!("my message".as_bytes(), &decoded);

使用相同的分配缓冲区对多个消息进行编码。

use radix64::STD;
let mut buf = Vec::new();
let encoded = STD.encode_with_buffer("my message", &buf);
let encoded = STD.encode_with_buffer("my second message", &buf);

使用相同的分配缓冲区对多个消息进行解码。

use radix64::STD;
let mut buf = Vec::new();
let decoded = STD.decode_with_buffer("AABB", &buf);
let decoded = STD.decode_with_buffer("AA==", &buf);

定义并使用自定义字母表

use radix64::ConfigBuilder;
let my_cfg =
    ConfigBuilder::with_alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#&")
        .no_padding()
        .build()
        .unwrap();
let encoded = my_cfg.encode("my message");
let decoded = my_cfg.decode(&encoded).unwrap();

性能

标准字母表(STD、URL_SAFE 和 CRYPT)以及 NO_PAD 变体都具有 AVX2 优化的编码器和解码器。如果在支持 AVX2 的 CPU 上运行,这将提供巨大的性能提升。默认情况下,将执行运行时检查以查看是否可用 AVX2。如果您指定为支持 AVX2 的平台进行编译,将避免运行时检查。如果您想避免使用 AVX2 实现,可以在编译 crate 时禁用 "simd" 功能。

在此处查看基准测试运行示例 这里

依赖项