ulid-mssql
shortuuid
ulid-mssql | shortuuid | |
---|---|---|
1 | 5 | |
40 | 1,975 | |
- | - | |
4.2 | 0.8 | |
4 months ago | about 1 year ago | |
TSQL | Python | |
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.
ulid-mssql
-
New UUID Formats – IETF Draft
Yeah, it's a small world.
I actually took the opposite path and explored several of the micro-optimized ULID libraries in C# before settling down with NUlid which I decided had the cleanest API and documentation (and reasonably good response times to GitHub issues). The implementation of Cysharp's lib has a lot of Unsafe code, which I understand why they took that path (given the focus on Unity code), but I'm hesitant about it and I liked a lot better (conceptually) how much more Span code mcb2001's CSharp.Ulid library had and if I were to micro-optimize a library that's much more the path that I would take. (But so far micro-optimizations of that sort haven't been a priority in my real world usage and I'll take the well tested library with the nice API.) I created a couple simple extension methods to do the specific "ToSqlGuid()" and "ToUlidFromSql()" that I desired for the SQL Server sort order. (Which is just shuffling the first six bytes of a ULID byte array to the end of the GUID byte array and vice versa.)
I actually trust that I can at least generate ULIDs in SQL Server, again because the part I care to be sorted/needs to be correct (the timestamp) fits into the non-endian-issue portion of a GUID in SQL Server. I've been using just the generator function from ulid-mssql [1] (I used it mostly just for DB migrations and it was nice to have for that). It was debugging the endian issues and Base-32 encoding issues of the "ULID GUID to string" functions where I gave up and decided I didn't trust doing that in database.
[1] https://github.com/rmalayter/ulid-mssql
shortuuid
-
Ask HN: Could you show your personal blog here?
Unlike many people here, I don't like to write hundreds of mediocre posts. Instead, I prefer very few posts, that unfortunately are still mediocre.
If you're tired of all the perfection that exists on the internet, where every piece is deeply insightful and changes your life, I'd encourage you to read my articles, which only promise to shorten it:
https://www.stavros.io/
-
Short, friendly base32 slugs from timestamps
I use shortuuid[0] for that stuff, which also omits the capital letter I, and has some other niceties (I wrote the library). It works really well, and I like how small the IDs are.
[0] https://github.com/skorokithakis/shortuuid
- Ask HN: What are your favorite personal sites?
-
Building a Micro Business: What Services I Pay For
skorokithakis: developer of django-annoying and shortuuid
-
GUIDs Are Not the Only Answer
https://github.com/skorokithakis/shortuuid#usage
What are some alternatives?
ksuid - K-Sortable Globally Unique IDs
pangu.py - Paranoid text spacing in Python
uuid6-ietf-draft - Next Generation UUID Formats
chardet - Python character encoding detector
uulid.go - ULID-UUID compatibility library for generating and parsing ULIDs.
fuzzywuzzy - Fuzzy String Matching in Python
Ulid - Fast .NET C# Implementation of ULID for .NET and Unity.
Levenshtein - The Levenshtein Python C extension module contains functions for fast computation of Levenshtein distance and string similarity
lexid - fast lexicographically orderable/sortable ID generator
uniout - Never see escaped bytes in output.
shortuuid.rb - Convert UUIDs & numbers into space efficient and URL-safe Base62 strings, or any other alphabet.
Charset Normalizer - Truly universal encoding detector in pure Python