User eXperience focused IDentifiers (UXIDs) are identifiers which:
- Describe the resource (aid in debugging and investigation)
- Work well with copy and paste (double clicking selects the entire ID)
- Can be shortened for low cardinality resources
- Are secure against enumeration attacks
- Can be generated by application code (not tied to the datastore)
- Are K-sortable (lexicographically sortable by time - works well with datastore indexing)
- Do not require any coordination (human or automated) at startup, or generation
- Are very unlikely to collide (more likely with less randomness)
- Are easily and accurately transmitted to another human using a telephone
Many of the concepts of Stripe IDs have been used in this library.
go run cli/main.go
Bug reports and pull requests are welcome on GitHub at https://github.com/riddler/uxid-rs.
The project is available as open source under the terms of the MIT License.