1 个不稳定版本
0.1.1 | 2024年7月18日 |
---|---|
0.1.0 |
|
#10 在 #base62
每月192 次下载
9KB
83 行
rsbase62
高性能、Rust优化的Base62编码实现。
为什么是rsbase62?
名称 rsbase62
代表 "Rust Base62",突出了此crate的几个关键方面
-
以Rust为中心:此实现专门针对Rust进行了优化,尽可能利用Rust的性能特性和安全特性。
-
清晰度:"rs"前缀清楚地表明这是一个Rust实现,使其与其他语言的Base62库区分开来。
-
可发现性:名称易于搜索和记忆,使Rust开发者能够轻松找到并使用它。
-
特定性:它清楚地传达了该crate处理Base62编码,而不是Base64或其他类似编码。
功能和优势
- 非常快:使用不安全的Rust以实现最大性能,适用于高吞吐量场景。
- Rust优化:设计用于与Rust的u128类型无缝协作,提供对大数字的高效编码。
- 简约:核心功能没有依赖项,确保项目占用空间小。
- 灵活:虽然针对性能进行了优化,但可以轻松将其包装在安全代码中以供通用场景使用。
- 基准驱动:包括与其他Base62实现的基准比较,展示了其性能优势。
用法
将其添加到您的 Cargo.toml
[dependencies]
rsbase62 = "0.1.0"
然后,在您的Rust代码中
use rsbase62::encode;
fn main() {
let num: u128 = 123456789;
let encoded = unsafe { encode(num) };
println!("Encoded: {}", encoded);
}
安全性
此crate使用 unsafe
代码进行性能优化。确保输入有效u128数字的责任在于调用者。
- 输入是一个有效的u128数字
- BASE62_CHARS数组没有被修改
对于安全使用,考虑在您的代码中使用安全的API包装 encode
函数。
基准
包括与其他Base62实现的基准比较。使用以下命令运行它们
cargo bench
何时使用rsbase62
- 当Base62编码操作的性能至关重要时
- 在频繁使用Base62编码的高吞吐量Web应用程序或API中
- 对于需要高效编码大数字(最多u128)的项目
- 当您愿意为了性能收益管理不安全代码时
许可证
此项目受
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您提交的任何有意包含在此crate中的贡献,将按照上述方式双重许可,没有额外的条款或条件。