Crate tsid

Source
Expand description

§tsid

TSID generator for rust, this library is reimplementation of java tsid-creator created by Fabio Lima

example workflow

Implementation status:

  • Generate TSID with simple, naive implementation
  • Add basic tests to check compatibility
  • Benchmarks (compare the speed to java library)
  • Publish first usable version to crates.io
  • GitHub actions workflow to CI
  • Serde serialization
  • Thread safety

Rust GitHub Actions

§How to use it?

use tsid::create_tsid;

fn main() {
    let tsid = create_tsid();
}

Crate features:

  • bson_as_string - the same as for serde
  • bson - adds From bson conversion
  • chrono - Allow extracting DateTime from TDIS
  • debug - adds debug trait to TSID
  • display - add Display trait to TSID
  • serde_as_string - tells serde to serialize TSID as string (disabling this feature means that serde will serialize to string for human readable formats ant tu u64 otherwise)
  • serde - adds serde dependency and serialization/deserialization

Structs§

TSID
TsidFactory

Functions§

create_tsid
Returns a new TSID
create_tsid_256
Returns a new TSID
create_tsid_1024
Returns a new TSID
create_tsid_4096
Returns a new TSID
get_node_bits
Returns the NODE_BITS parsed from env variable or the default value = 8 which was used to create default factory
get_node_id
Returns the NODE_ID parsed from env variable or the random one which was used to create default factory