paralleldrive / cuid2

Next generation guids. Secure, collision-resistant ids optimized for horizontal scaling and performance.
MIT License
2.42k stars 49 forks source link

Replacement nuget package for abandoned Cuid.NET #72

Open prosser opened 4 months ago

prosser commented 4 months ago

I was using the Virtus Cuid.NET package, and on January 1 the project was abandoned.

This made me feel bad, so I did a port of this repo to C# myself.

Not sure if you want to review it before linking it for your C# users, but in case you do:

GitHub: prosser/cuid2

NuGet: Rosser.Cuid2

TIA, prosser

xaevik commented 3 months ago

Hi @prosser,

I am sorry that I had to discontinue maintenance of cuid.net, a real-life situation occurred which has precluded me from maintaining this anymore (and the other implementations). I would be more than willing to transfer ownership of it to you if you wish. The library is feature complete, it just may need dependency updates once and awhile.

anli-xsigns commented 3 months ago

@xaevik I wish all the best for you! @prosser Thank you for your effort - would it be an option to use the old repo?

prosser commented 3 months ago

@xaevik I'm sorry to hear that :( I won't pry; I hope things are okay, or if not okay, manageable. Thank you for your contributions to the community!

@anli-xsigns I can take over the old repo if that's better for everyone. Please take a few minutes to compare the two and let me know what you would prefer. I think the main difference between the two is that mine was a direct port of paralleldrive/cuid2 from JS to C# rather than a fork of cuid.net (primarily because I needed to support .NET Standard 2.0 in addition to newer .NET SDKs).

xaevik commented 3 months ago

Hi @prosser

That could present an issue then if you need .NET Standard 2.0 support. When I wrote cuid.net I intentionally targeted .NET rather than .NET Standard as that was the recommended path going forward. I suppose .NET Standard 2.0 support could be shoe-horned in but there are several C# 11 and 12 features being used, they'd have to be re-written for C# 8 most likely but I am not sure what that would do to the implementation.

The only remaining difference is that yes cuid.net is not a direct port whereas yours is but I wanted to treat Cuid and Cuid2 as pseudo primitive types like that of Guid.

xaevik commented 1 month ago

Hi @prosser, @anli-xsigns

I just wanted to let you both know that I've gotten things back under control with my situation so I will be resuming the maintenance of cuid.net.

@prosser I will also be introducing .NET Standard 2 support for users that are still targeting .NET Framework.

anli-xsigns commented 1 month ago

@xaevik Wow, that's really awesome to hear 👍👍🥳🥳 I'm looking forward for the things to come!

xaevik commented 1 month ago

@prosser, @anli-xsigns I have an open PR (#38) tracking all the work, so we can move any discussions there if you're interested, that way we're not creating noise here.

xaevik commented 1 month ago

Hi @prosser I released a new beta build of cuid.net that now offers support for .NET Framework and .NET Standard. Give it whirl and see if it works for you.