Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Listed packages may not comply with spec #80

Open
ChrisKeefe opened this issue Mar 2, 2023 · 2 comments
Open

Listed packages may not comply with spec #80

ChrisKeefe opened this issue Mar 2, 2023 · 2 comments

Comments

@ChrisKeefe
Copy link

ChrisKeefe commented Mar 2, 2023

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

@joonatanu-softwerk
Copy link

joonatanu-softwerk commented Jul 29, 2024

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.

I suggest to refer to this library instead:
https://github.com/ultimicro/netulid

@Seramis
Copy link

Seramis commented Aug 30, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants