#性能 #base62 #rust

已删除 rsbase62

高性能、Rust优化的Base62编码实现

1 个不稳定版本

0.1.1 2024年7月18日
0.1.0 2024年7月18日

#10#base62

Download history • Rust 包仓库 148/week @ 2024-07-13 • Rust 包仓库 32/week @ 2024-07-20 • Rust 包仓库 12/week @ 2024-07-27 • Rust 包仓库

每月192 次下载

Apache-2.0

9KB
83

rsbase62

高性能、Rust优化的Base62编码实现。

为什么是rsbase62?

名称 rsbase62 代表 "Rust Base62",突出了此crate的几个关键方面

  1. 以Rust为中心:此实现专门针对Rust进行了优化,尽可能利用Rust的性能特性和安全特性。

  2. 清晰度:"rs"前缀清楚地表明这是一个Rust实现,使其与其他语言的Base62库区分开来。

  3. 可发现性:名称易于搜索和记忆,使Rust开发者能够轻松找到并使用它。

  4. 特定性:它清楚地传达了该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-2.0许可证定义的,您提交的任何有意包含在此crate中的贡献,将按照上述方式双重许可,没有额外的条款或条件。

没有运行时依赖项