1 unstable release
0.1.0 | Oct 15, 2022 |
---|
#5 in #nanoid
48KB
rs-nanoid
This crate is the most efficient implementation of ai/nanoid.
Features of the Nano ID spec are:
- URL friendly
- Use of cryptographic random generator
- Uses a bigger alphabet than UUID, so a similar number of random bits are packed in just 21 chars instead of 36 (like UUID)
- Much, much faster than UUID (v4)
Features of this specific implementation are:
- Fastest and most performant implementation of Nano ID around (benchmarks)
- Minimal memory usage.
- Fully optimized (
nanoid::standard
andnanoid::standard_unsecure
).
Docs and examples at https://docs.rs/rs-nanoid.
Install
Add to Cargo.toml
under [dependencies]
.
rs-nanoid = "0.1.0"
Security
If 1,000,000 Nano IDs of length 21 (a.k.a.
nanoid::standard::<21>
) were generated each second, ~41 thousand years would be required in order to have a 1.0% probability of a collision.
Comparison of Nano ID and UUID (V4).
Benchmarks
Tests are inside of lib.rs
and benchmarks are in the benches
folder.
These are benchmarks of nanoid::standard::<length>()
.
OS | ARCH | CPU |
---|---|---|
Windows 10 | amd64 | Core i7-7500U @ 2.7GHz |
length | sample pool | graph (sample of 100 from pool) |
---|---|---|
8 | ~254,200,000 | |
21 | ~124,000,000 | |
36 | ~86,300,000 | |
255 | ~18,200,000 |
References
License
Dependencies
~0.3–0.8MB
~14K SLoC