UUID is a modern and efficient unique identifier generator for .NET ecosystem. This high-performance library is designed for modern distributed systems, providing thread-safe operations and time-ordered identifiers with enhanced security features.
Thanks goes to these wonderful people (emoji key):
Taiizor π» π€ |
This project follows the all contributors specification. Contributions of any kind welcome!
Vegalya π |
Soferity π |
UUID works on .NET Framework, .NET Standard, .NET Core and .NET.
.NET implementation | Version support |
---|---|
.NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
.NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Mono | 5.4, 6.4 |
Xamarin.iOS | 10.14, 12.16 |
Xamarin.Mac | 3.8, 5.16 |
Xamarin.Android | 8.0, 10.0 |
Universal Windows Platform | 10.0.16299, TBD |
Unity | 2018.1 |
Binaries for all platforms are built from a single Visual Studio Project. You will need the latset Visual Studio to build or contribute to UUID.
-
High Performance & Thread Safety
- Thread-safe operations optimized for performance
- Thread-local secure random generation
- Efficient memory usage with 16-byte format
-
Time-Based Ordering
- Natural sorting based on creation time
- Monotonic timestamps for consistent ordering
- Perfect for distributed systems and databases
-
Security
- Cryptographically secure random generation
- Enhanced protection against prediction and collision
-
Multiple Format Support
- Base32 encoding for URL-friendly strings
- Base64 encoding for compact representation
- Guid compatibility
- Efficient string parsing and formatting
-
Rich API
- Implicit/explicit conversion operators
- Comparison and equality operations
- Comprehensive test coverage
- Cross-platform compatibility
UUID is distributed via Microsofts package manager NuGet. We refer to this page for detailed descriptions on how to get started/use NuGet. Here is a link to the UUID NuGet package. You can grab a copy of the library on NuGet by running:
By Package Manager (PM):
Install-Package UUID
By .NET CLI:
dotnet add package UUID
Find more, including a runnable example application, under the Getting Started topic in the documentation.
To learn more about UUID, check out the documentation - you'll find information there on the most common scenarios. If UUID isn't working the way you expect, you may find the troubleshooting guide useful.
UUID has an active and helpful community who are happy to help point you in the right direction or work through any issues you might encounter. You can get in touch via:
- Stack Overflow
- Discord β this is the best place to start if you have a question
We welcome bug reports and suggestions through our issue tracker here on GitHub.
Would you like to help make UUID even better? We keep a list of issues that are approachable for newcomers under the solved label (accessible only when logged into GitHub). Before starting work on a pull request, we suggest commenting on, or raising, an issue on the issue tracker so that we can help and coordinate efforts.
When contributing please keep in mind our Code of Conduct.
UUID is copyright Β© 2024-2025 UUID Contributors - Provided under the MIT License.