#id

xid

Globally unique sortable id generator. A Rust port of https://github.com/rs/xid.

6 releases (stable)

1.0.3 Oct 14, 2022
1.0.2 Jul 5, 2022
1.0.1 Jun 24, 2022
1.0.0 Feb 16, 2021
0.1.1 Dec 13, 2020

#642 in Development tools

Download history 273/week @ 2022-08-10 686/week @ 2022-08-17 1725/week @ 2022-08-24 1512/week @ 2022-08-31 1187/week @ 2022-09-07 1130/week @ 2022-09-14 1164/week @ 2022-09-21 2467/week @ 2022-09-28 1666/week @ 2022-10-05 3149/week @ 2022-10-12 1784/week @ 2022-10-19 2354/week @ 2022-10-26 1217/week @ 2022-11-02 1974/week @ 2022-11-09 553/week @ 2022-11-16 864/week @ 2022-11-23

4,888 downloads per month
Used in 2 crates (via aide-de-camp)

MIT license

20KB
373 lines

xid

CI Crates.io API reference

Globally unique sortable id generator. A Rust port of https://github.com/rs/xid.

The binary representation is compatible with the Mongo DB 12-byte ObjectId. The value consists of:

  • a 4-byte timestamp value in seconds since the Unix epoch
  • a 3-byte value based on the machine identifier
  • a 2-byte value based on the process id
  • a 3-byte incrementing counter, initialized to a random value

The string representation is 20 bytes, using a base32 hex variant with characters [0-9a-v] to retain the sortable property of the id.

See the original xid project for more details.

Usage

println!("{}", xid::new()); //=> bva9lbqn1bt68k8mj62g

Examples

Dependencies

~0.6–1.2MB
~24K SLoC