nanoid
ksuid
nanoid | ksuid | |
---|---|---|
85 | 39 | |
24,315 | 4,884 | |
- | 0.7% | |
8.3 | 3.1 | |
15 days ago | 11 months ago | |
JavaScript | Go | |
MIT License | MIT 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.
nanoid
- TIL: Versions of UUID and when to use them
-
Mastering Real-Time Collaboration: Building Figma and Miro-Inspired Features with Supabase
CURRENT_CLIENT_ID is the random unique string Id generated by nanoid that gets generated whenever the client is opened on the brower’s tab.
-
Next.js and Bunny CDN: Complete Guide to Image Uploading with Server Actions
Last thing left is to use our new upload function in our server action. Since I like to upload images in single format and have some more control over them, I will additionally use sharp library. For file name, I'll generate some random string using nanoid:
- Nano ID Collision Calculator
-
Why we chose Bun
Our API is in node. And God, how I suffered to import nanoid in an esmodule project. I had to vendor it, since using a previous version was not ideal. With bun, we can no longer worry about that. Just import what you need and done.
-
UUIDv7 is coming in PostgreSQL 17
No thread about UUID is complete without a plug for NanoID! https://github.com/ai/nanoid/blob/main/README.md
-
Building a File Storage With Next.js, PostgreSQL, and Minio S3
Generate a unique file name using the nanoid library.
-
Building a Multi-Tenant App with FastAPI, SQLModel, and PropelAuth
The syntax should read similar to SQL itself. We’re using a Python port of nanoid to generate our IDs. There’s only one thing missing… how do we actually create the table?
-
You Don't Need UUID
I usually go for Nano Id for new projects https://github.com/ai/nanoid
-
Enhance Your Web Apps: Best JS Libraries 🔧
Nano ID
ksuid
- A brief history of the UUID (2017)
- What happens after 100 years?
-
Zero Downtime Postgres Upgrades
OP here - we avoid sequences in all but one part of our application due to a dependency. We use [KSUIDs][1] and UUID v4 in various places. This one "gotcha" applies to any sequence, so it's worth calling out as general advice when running a migration like this.
[1]: https://segment.com/blog/a-brief-history-of-the-uuid/
-
Bye Sequence, Hello UUIDv7
UUID v4 isn't large enough to prevent collisions, that is why segment.io created https://github.com/segmentio/ksuid which is 160bit vs the 128bit of a UUIDv4.
- You Don't Need UUID
- A Brief History of the UUID
-
Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
Assuming you don't need to use UUIDv7 (or any UUID's) then https://github.com/segmentio/ksuid provides a much bigger keyspace. You could just append a string prefix if you wanted to namespace, but the chance of collisions of a KSUID is many times smaller than a UUID of any version.
-
Unexpected downsides of UUID keys in PostgreSQL
KSUID's are have temporal-lexicographical order plus 128 bits of entropy, which is more than UUIDv4.
https://github.com/segmentio/ksuid
-
UUIDs are so much better than autoincrementing ids and it's not even close
That's why you use ksuid (https://segment.com/blog/a-brief-history-of-the-uuid/) or, if you're willing to go with a draft spec you could go with the new UUID formats https://www.ietf.org/archive/id/draft-ietf-uuidrev-rfc4122bi...
-
What Happened to UUIDv2?
Interesting in more history of UUIDs? Twilio Segment's blog has an amazing history lesson about how they came to be.
What are some alternatives?
snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.
ulid - Universally Unique Lexicographically Sortable Identifier (ULID) in Python 3
typedorm - Strongly typed ORM for DynamoDB - Built with the single-table-design pattern in mind.
pg-ulid - ULID Functions for PostgreSQL
pg_random_id - Provides pseudo-random IDs in Postgresql databases
ulid-mssql - Implementation of ULID generator For Microsoft SQL Server
jest - Delightful JavaScript Testing.
python-ksuid - A pure-Python KSUID implementation
Numeral-js - A javascript library for formatting and manipulating numbers.
uuid7 - UUID version 7, which are time-sortable (following the Peabody RFC4122 draft)
Strapi - 🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first.
cuid - Collision-resistant ids optimized for horizontal scaling and performance.