js-id
saltpack
js-id | saltpack | |
---|---|---|
3 | 1 | |
10 | 981 | |
- | 0.2% | |
5.9 | 2.6 | |
8 months ago | 4 months ago | |
TypeScript | Go | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
js-id
-
Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
We have a uuidv7 implementation that we've been using with rocksdb for over a year https://github.com/matrixai/js-id
-
Plan B for UUIDs: double AES-128
We evaluated ULID but we wanted something that is future proof for our decentralised secret sharing system. So we implemented UUIDv7 in TypeScript called `IdSortable` https://github.com/MatrixAI/js-id
It allows strict monotonic IDs when you provide it the previously generated ID. The resulting data structure is a Uint8Array making it easy to put into binary structures. Can also be used as a key inside any POJO record.
-
Lesser Known PostgreSQL Features
I had reviewed existing UUIDv7 implementations and many were incorrect or had subtle timing bugs.
We ended up implementing UUIDv7 in our ID generation library https://github.com/MatrixAI/js-id. And we have a number of tests ensuring that it is truly monotonic even across process restarts.
See IdSortable.
saltpack
-
Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
There's more! I keep a list of interesting "bases" A select few:
- base 58 - Satoshi's/Bitcoin's https://en.wikipedia.org/wiki/Binary-to-text_encoding#Base58
- "base62" - Keybase's saltpack https://github.com/keybase/saltpack
- The famous "Adobe 85" - https://en.wikipedia.org/wiki/Ascii85
- basE91 - https://base91.sourceforge.net
At work we defined several new "bases" for QR code. IMHO, it is an under applied area of computer science.
What are some alternatives?
ksuid - K-Sortable Globally Unique IDs
typeid-go - Go implementation of TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
typeid - Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
typeid-ts - TypeID UUIDv7 implementation in Typescript (Lib and CLI)
tbls - tbls is a CI-Friendly tool for document a database, written in Go.
snowid - A Decentralized, K-Ordered 128-bit Unique ID Generator library in C.
resource-id - Developer-friendly k-sortable IDs
typeid-sql - SQL implementation TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
postgres-elasticsearch-fdw - Postgres to Elastic Search Foreign Data Wrapper