https://github.com/s0l0ist/ferroid
A flexible ULID or Snowflake-like ID generator for producing unique, monotonic, and lexicographically sortable IDs.
https://github.com/s0l0ist/ferroid
id monotonic snowflake ulid uuid
Last synced: 4 months ago
JSON representation
A flexible ULID or Snowflake-like ID generator for producing unique, monotonic, and lexicographically sortable IDs.
- Host: GitHub
- URL: https://github.com/s0l0ist/ferroid
- Owner: s0l0ist
- License: apache-2.0
- Created: 2025-05-13T11:35:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-27T08:54:21.000Z (12 months ago)
- Last Synced: 2025-06-27T09:35:25.115Z (12 months ago)
- Topics: id, monotonic, snowflake, ulid, uuid
- Language: Rust
- Homepage:
- Size: 179 KB
- Stars: 17
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# 🤖 ferroid
**ferroid** is a Rust library for generating and streaming time-sortable IDs,
including **Snowflake-style** IDs and **ULIDs**. It aims to be flexible while
having exceptional performance.
This workspace includes:
- [`ferroid`](./crates/ferroid): Core ID types and generators
- [`ferroid-tonic-core`](./crates/ferroid-tonic-core): gRPC protocol definitions
and shared types
- [`ferroid-tonic-server`](./crates/ferroid-tonic-server): High-performance gRPC
server that streams binary-packed ID chunks
- [`pg-ferroid`](./crates/pg-ferroid): A PostgreSQL extension for high-throughput
ULID generation using ferroid
## 🚀 Getting Started
Run all tests
```bash
cargo test --features all
```
Run all benchmarks
```bash
cargo criterion --all-features
```
## 📄 License
Licensed under either of:
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
([LICENSE-APACHE](LICENSE-APACHE))
- [MIT License](https://opensource.org/licenses/MIT)
([LICENSE-MIT](LICENSE-MIT))
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.