Awesome
uuidcheck
A tiny, zero-dependency Go library that validates UUIDs against standard RFC 4122 formatting, converts UUIDv7() into timestamps by ensuring accuracy and light compute.
Why?
Sometimes you just need to know if that string is a proper UUID without dragging in heavy libraries or writing clunky checks. uuidcheck
does one thing and does it well.
Features
- Simple & Light: No regular expressions, no external dependencies and a single-pass check.
- Strict RFC 4122 Format: Ensures correct length, hyphen positions and valid hex characters.
- UUIDv7 Support: Extracts embedded timestamps from version 7 UUIDs.
- Fully Tested: Includes comprehensive unit tests, covering a range of edge cases.
Getting Started
go get github.com/ashwingopalsamy/uuidcheck
How It Works
IsValidUUID
runs a quick series of checks:
- Length Check: Must be exactly 36 characters.
- Hyphen Positions: Hyphens must appear at positions 8, 13, 18, and 23.
- Hex Digits: All other characters must be valid hex (
0-9
,A-F
,a-f
).
IsUUIDv7
checks the version nibble of the time_hi_and_version
field, ensuring its '7'.
UUIDv7ToTimestamp
extracts the first 48 bits from the UUID (the combination of time_low
and part of time_mid
) and interprets them as a Unix timestamp in milliseconds.
Examples
Valid:
01939c00-282d-782f-9cc2-887dc7b40629
01939C00-282D-782F-9CC2-887DC7B40629
Invalid:
01939c-282d-782f-9cc2-887
(too short)f01939c00-282d-782f-9cg2-887dc7b40629
(invalid hex charg
)01939c00282d782f9cc2887dc7b40629
(no hyphens)
Testing
We believe in solid test coverage. Just run:
go test -v ./...
You'll find unit tests and edge case scenarios in uuidcheck_test.go
.
Contributing
Contributions are welcome! Feel free to open issues, submit PRs, or propose features. Just keep it simple and aligned with the library’s goal: blazing-fast, straightforward UUID validation.
License
This project is licensed under the MIT License.