# xid
[](https://github.com/kazk/xid-rs/actions?query=workflow%3ACI)
[](https://crates.io/crates/xid)
[](https://docs.rs/xid/)
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][object-id].
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
```rust
println!("{}", xid::new()); //=> bva9lbqn1bt68k8mj62g
```
## Examples
- [`cargo run --example gen`](./examples/gen.rs): Generate xid
[`xid`]: https://github.com/rs/xid
[object-id]: https://docs.mongodb.org/manual/reference/object-id/