2 unstable releases

0.2.0 Mar 7, 2024
0.1.0 Mar 7, 2024

#6 in #technology

Download history 165/week @ 2024-03-01 95/week @ 2024-03-08 4/week @ 2024-03-15 5/week @ 2024-03-22 78/week @ 2024-03-29 2/week @ 2024-04-05

85 downloads per month

Apache-2.0

7KB
91 lines

Crates.io Version Crates.io License Foundry Industries

Superflake is an ultra-safe identification technology inspired by Snowflake IDs.

Features

  • Simple. Minimal and beautiful IDs that are unique.
  • Customizable. You can customize the default epoch and the node ID.
  • Robust. Superflake is built in Rust, the world's most loved programming language.
  • Performant. A Superflake ID is only 8 bytes long, and it is a number, just like Snowflakes.

Structure

A Superflake is generated by concatenating:

  • a 42-bit timestamp,
  • a 10-bit node ID, and
  • a 12-bit incremental number.

Usage

use superflake::Superflake;

let mut superflake = 
    Superflake::new_with_node_id(1023, None); // Specify a custom epoch if you want

let id = superflake.gen(); // 392366571697205248

// Decode the Superflake
let decoded_id = superflake.decode(id); 

No runtime deps