InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards. Learn more →
Typeid Alternatives
Similar projects and alternatives to typeid
-
-
InfluxDB
Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
-
-
-
-
-
cuid2
Next generation guids. Secure, collision-resistant ids optimized for horizontal scaling and performance.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
typeid-sql
SQL implementation TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
-
-
-
-
flow
🌊 Continuously synchronize the systems where your data lives, to the systems where you _want_ it to live, with Estuary Flow. 🌊 (by estuary)
-
-
-
-
typeid-go
Go implementation of TypeIDs: type-safe, K-sortable, and globally unique identifiers inspired by Stripe IDs
-
-
deterministic-guid-generator
Create a deterministic GUID based on namespace Guid, a string and an optional version.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
typeid discussion
typeid reviews and mentions
- Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
- TypeID: Type-safe, K-sortable, globally unique identifiers
-
ULID: Like UUID but Sortable
I went to add your UUID variant to my notes and found https://github.com/jetify-com/typeid
The main differences:
- typeid allows up to a 63 byte prefix
-
TypeID-JS: Type Safe, K-Sortable Unique IDs for Javascript
Since we first announced TypeID last year, we've seen significant adoption and interest from the community, with 23 different language clients contributed by the community and 90,000 weekly NPM downloads of our Typescript Implementation.
-
You'll regret using natural keys
I'd recommend using Crockford base 32 [0] to encode the bytes. It makes the text more human friendly by eliminating case sensitivity, removing similar/ambiguous letters, and preventing accidental profanity.
And in most cases I think you're also better off just using a uuid and encoding its bytes as base 32, in which case you're basically doing type id's [1]. If the "slug" portion of the id actually encodes a uuid, then it gives you the option to store it in your database using an appropriate uuid type. This will make your database much happier than using long string PK's.
0: https://www.crockford.com/base32.html
1: https://github.com/jetify-com/typeid
-
ULIDs and Primary Keys
I’ve seen this sort of design referred to as “typed IDs”: https://github.com/jetify-com/typeid
Doesn’t use the crockford encoding, but does is another one that minimises confusables.
-
The UX of UUIDs
https://github.com/uuid6/new-uuid-encoding-techniques-ietf-d...
But there is always TypeID in the meantime which uses UUIDv7 under the hood: https://github.com/jetify-com/typeid
Either way, I am in favor of prefixing and using alternative encodings, but it will need some time to figure out the best route. In the mean time, there are so many alternatives. TypeID, NanoID, ULID, etc. I even made my own quick one just for giggles: https://github.com/daegalus/snowflakes
-
Adding type safety to object IDs in TypeScript
If you want a type-prefixed UUIDv7 type, I can wholeheartedly recommend TypeID-JS: https://github.com/jetpack-io/typeid-js
Also available for a whole bunch of other languages: https://github.com/jetpack-io/typeid
UUIDv7 is UUIDv4-compatible (i.e. you can put a v7 UUID anywhere a v4 UUID would go, like in Postgres's UUID datatype) and is time-series sortable, so you don't lose that nice lil' benefit of auto-incrementing IDs.
And if you use something like TypeORM to define your entities, you can use a Transformer to save as plain UUIDv7 in the DB (so you can use UUID datatypes, not strings), but deal with them as type-prefixed strings everywhere else:
```
-
You Don't Need UUID
IMO, a good middleground is using schemes like TypeID[0], ulid[1], or KSUID[2] that provides a more compact and readable (base32) representation and provides better database locality (K-sortable).
[0] https://github.com/jetpack-io/typeid
-
A note from our sponsor - InfluxDB
www.influxdata.com | 9 Sep 2024
Stats
jetify-com/typeid is an open source project licensed under Apache License 2.0 which is an OSI approved license.
The primary programming language of typeid is Go.