6 releases (breaking)

0.6.0 Mar 14, 2022
0.5.0 Jan 25, 2021
0.4.0 Dec 30, 2020
0.3.0 Nov 2, 2020
0.1.0 Aug 10, 2020

#3 in #auto-increment

Download history 2060/week @ 2024-11-27 2419/week @ 2024-12-04 3000/week @ 2024-12-11 2083/week @ 2024-12-18 1750/week @ 2024-12-25 1497/week @ 2025-01-01 1957/week @ 2025-01-08 2545/week @ 2025-01-15 1780/week @ 2025-01-22 1382/week @ 2025-01-29 2013/week @ 2025-02-05 2028/week @ 2025-02-12 2194/week @ 2025-02-19 2616/week @ 2025-02-26 1926/week @ 2025-03-05 2695/week @ 2025-03-12

9,684 downloads per month
Used in 6 crates (5 directly)

MIT license

13KB
114 lines

snowflake-rs

Rust version of the Twitter snowflake algorithm .

A crate for quick generating distributed-ids.

API Docs: https://docs.rs/rs-snowflake

Usage

Add this to your Cargo.toml:

[dependencies]
rs-snowflake = "*"

Getting Started

use snowflake::SnowflakeIdGenerator;
fn main() {
   let mut id_generator_generator = SnowflakeIdGenerator::new(1, 1);
   let id = id_generator_generator.real_time_generate();
}
use snowflake::SnowflakeIdBucket;
fn main() {
   let mut id_generator_bucket = SnowflakeIdBucket::new(1, 1);
   let id = id_generator_bucket.get_id();
}
test bench_generate_get_id_by_bucket                      ... bench:           5 ns/iter (+/- 0)

test bench_generate_get_id_by_generator_general_version   ... bench:         232 ns/iter (+/- 32)

test bench_generate_get_id_by_generator_lazy_version      ... bench:           2 ns/iter (+/- 0)

test bench_generate_get_id_by_generator_real_time_version ... bench:         249 ns/iter (+/- 22)

test bench_generate_ids_by_bucket                         ... bench:      13,077 ns/iter (+/- 1,263)

License

Licensed under

Contribution

Thank you all very much for your contributions to the project, and if there is anything I can do to help, I would love to help!

No runtime deps