A crate for quickly generating unique IDs with guaranteed properties. This library is completely unrelated to twitter's snowflake library.
This crate currently includes guaranteed process unique IDs but may include new ID types in the future.
API Docs: https://stebalien.github.io/snowflake/snowflake/
Add this to your Cargo.toml:
[dependencies]
snowflake = "1.2"
and this to your create root:
extern crate snowflake;
To add support for serialization and deserialization using serde, add this to your Cargo.toml:
[dependences]
snowflake = { version = "1.2", features = ["serde_support"] }
Warning: there is a risk of non-unique IDs if (de)serialization is used to persist IDs, i.e. reading and writing IDs to and from a file.
use snowflake::ProcessUniqueId;
fn main() {
let id1 = ProcessUniqueId::new();
let id2 = ProcessUniqueId::new();
println!("{}", id2);
}
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.