You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The specification README lists many packages that are not compliant with stated specifications.
Regardless of your feelings on monotonicity (#11, #40, etc), the current spec claims ULIDs provide it, and that they throw an error on overflow. Many listed packages do not implement monotonicity, do not throw, or implement it incorrectly (e.g. by incrementing the timestamp).
Recommended resolutions
modify the spec (e.g. clarifying whether sections are optional), and/or
clarify which listed implementations are fully compliant
E.g. a column in the README table describing whether a package implements monotonicity per spec would be useful to potential users
The text was updated successfully, but these errors were encountered:
Listed C# library does not comply with the spec and it is their consciously made decision to violate the spec: Cysharp/Ulid#61
Therefore it is not a good example of spec implementation.
Here's another ULID implementation in C#: https://github.com/ByteAether/Ulid
This implementation avoids throwing exception when generating ULID. This topic is discussed here: #39
The specification README lists many packages that are not compliant with stated specifications.
Regardless of your feelings on monotonicity (#11, #40, etc), the current spec claims ULIDs provide it, and that they throw an error on overflow. Many listed packages do not implement monotonicity, do not throw, or implement it incorrectly (e.g. by incrementing the timestamp).
Recommended resolutions
E.g. a column in the README table describing whether a package implements monotonicity per spec would be useful to potential users
The text was updated successfully, but these errors were encountered: