13个不稳定版本
0.8.4 | 2023年6月30日 |
---|---|
0.8.2 | 2022年11月18日 |
0.8.1 | 2022年3月1日 |
0.7.1 | 2023年7月10日 |
0.2.1 | 2018年11月24日 |
20 in 数学
1,775,664 每月下载量
用于 1,304 个crates (60 直接)
360KB
9K SLoC
num-bigint-dig
Rust的大整数类型,包括BigInt
和BigUint
。
警告 这是对
rust-num/num-bigint
的分支,重点在于提供实现加密操作所需的功能。
使用方法
将以下内容添加到您的Cargo.toml
[dependencies]
num-bigint-dig = "^0.7"
并添加到您的crate根目录
extern crate num_bigint_dig as num_bigint;
功能
std
功能默认启用并强制在较旧的Rust版本上编译。
可以在no_std目标上使用此crate。如果您想为没有std
crate的目标编译,您应该使用带有num-bigint
和default-features = false
的num-bigint
。所有其他子功能都应与no_std兼容。请注意,在此模式下,num-bigint
仍然依赖于alloc crate,因此请确保定义一个global_allocator
。
i128
和u128
的实现仅适用于Rust 1.26及以后版本。构建脚本会自动检测此情况,但您可以通过启用i128
crate功能来强制执行。
u64_digit
功能启用使用更大的内部"数字"(或称为"肢体")。在具有原生支持的架构上加速几乎所有操作。
prime
功能门启用处理大素数的算法和支持。
发布
发布说明可在RELEASES.md中找到。
兼容性
num-bigint
crate经过rustc 1.56及以上版本的测试。
替代方案
虽然 num-bigint
在纯Rust代码中力求良好的性能,但其他crate可能通过不同的权衡提供更好的性能。以下表格简要比较了几种替代方案。
crate | 许可证 | 最小rustc | 实现方式 |
---|---|---|---|
num-bigint-dig |
MIT/Apache-2.0 | 1.56 | 纯Rust |
num-bigint |
MIT/Apache-2.0 | 1.15 | 纯Rust |
ramp |
Apache-2.0 | nightly | Rust和内联汇编 |
rug |
LGPL-3.0+ | 1.18 | 通过 GMP 的 gmp-mpfr-sys 进行捆绑 |
rust-gmp |
MIT | 稳定? | 链接到 GMP |
apint |
MIT/Apache-2.0 | 1.26 | 纯Rust(未完成) |
基准测试
cargo bench --features prime
依赖项
~0.8–1.4MB
~27K SLoC