#id #snowflake #rusty-snowflake #snowflake-generator

rusty-snowflake

A library for generating and parsing Snowflake IDs

3 unstable releases

0.2.0 May 22, 2023
0.1.1 May 20, 2023
0.1.0 May 20, 2023

#39 in #snowflake

Download history 37/week @ 2025-01-14 7/week @ 2025-01-21 47/week @ 2025-01-28 52/week @ 2025-02-04 74/week @ 2025-02-11 48/week @ 2025-02-18 20/week @ 2025-02-25 49/week @ 2025-03-04 66/week @ 2025-03-11 16/week @ 2025-03-18 103/week @ 2025-03-25 47/week @ 2025-04-01 69/week @ 2025-04-08 41/week @ 2025-04-15 75/week @ 2025-04-22 42/week @ 2025-04-29

228 downloads per month

MIT license

17KB
274 lines

rusty-snowflake

Crates.io Version Crates.io License Tests docs.rs

This library is a Snowflake ID generator and parser written entirely in Rust.

Features

  • Generate unique snowflake IDs based on timestamp, worker ID, and sequence number.
  • Parse snowflake IDs to retrieve timestamp, worker ID, and sequence number.

Installation

Add the following dependency to your Cargo.toml file:

[dependencies]
rusty-snowflake = "0.2.0"

Or run the following in your project directory

cargo add rusty-snowflake

Usage

use rusty_snowflake::SnowflakeGenerator;

fn main() {
    // Create a new snowflake generator with custom worker ID of 123
    let mut generator = SnowflakeGenerator::new(123);

    // Generate a new snowflake ID
    let snowflake = generator.next();
    println!("Generated snowflake id: {}", snowflake);

    // Parse the snowflake ID
    let parsed_snowflake = Snowflake::parse(snowflake.to_id());
    println!("Parsed snowflake: {:?}", parsed_snowflake);
}

Contributions

Contributions and feedback are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.

License

This project is licensed under the MIT License.

No runtime deps