/num-bigint

Big integer types for Rust

Primary LanguageRustApache License 2.0Apache-2.0

num-bigint

crate documentation minimum rustc 1.31 build status

Big integer types for Rust, BigInt and BigUint.

Usage

Add this to your Cargo.toml:

[dependencies]
num-bigint = "0.3"

Features

The std crate feature is enabled by default, and is mandatory before Rust 1.36 and the stabilized alloc crate. If you depend on num-bigint with default-features = false, you must manually enable the std feature yourself if your compiler is not new enough.

Random Generation

num-bigint supports the generation of random big integers when the rand feature is enabled. To enable it include rand as

rand = "0.7"
num-bigint = { version = "0.3", features = ["rand"] }

Note that you must use the version of rand that num-bigint is compatible with: 0.7.

Releases

Release notes are available in RELEASES.md.

Compatibility

The num-bigint crate is tested for rustc 1.31 and greater.

Alternatives

While num-bigint strives for good performance in pure Rust code, other crates may offer better performance with different trade-offs. The following table offers a brief comparison to a few alternatives.

Crate License Min rustc Implementation
num-bigint MIT/Apache-2.0 1.31 pure rust
ramp Apache-2.0 nightly rust and inline assembly
rug LGPL-3.0+ 1.37 bundles GMP via gmp-mpfr-sys
rust-gmp MIT stable? links to GMP
apint MIT/Apache-2.0 1.26 pure rust (unfinished)