NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #9 most downloaded on pub.dev
RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart
Last release 2 months ago
15 Jul 2026
Release timing varies
gaps range from 4 weeks to 1.1 years
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
69 releases · first in 2012
Update All (major) by @renovate [bot] in #143
Full Changelog: 4.5.3...4.6.0
Uuid.isValidUUIDFormat(...), UuidValue.validateFormat(), UuidValidation.isValidUUIDFormat(...), and UuidValidation.isValidFormatOrThrow(...). (thanks @DPDmancul)UuidValue.withFormatValidation(...) for values whose UUID version and variant bits should not be checked. (thanks @DPDmancul)Uuid.parseHex128(...), Uuid.parseHex128AsByteList(...), UuidParsing.parseHex128(...), and UuidParsing.parseHex128AsByteList(...). (thanks @DPDmancul)noDashes parsing option through the public Uuid parse methods.One column per quarter.
Update actions/checkout action to v6 by @renovate [bot] in #138
experimental annotation from the UuidValue class by @marcelomendoncasoares in #141Full Changelog: 4.5.2...4.5.3
Add strictRFC9562 and deprecate strictRFC4122 to facilitate a rename. This will be remove in v5
FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF) as it is valid.strictRFC9562 and deprecate strictRFC4122 to facilitate a rename. This will be remove in v5sprintf dependency by @julemand101 in #132Full Changelog: 4.5.1...4.5.2
Add UuidValue.fromNamespace to let you make constant variants of the namespace, as due to language limitations on Enums, Namespace.*.uuidValue can't b
UuidValue.fromNamespace to let you make constant variants of the namespace, as due to language limitations on Enums, Namespace.*.uuidValue can't be constant.isV#(), isNil(), and isMax() functions to UuidValue for matching Dart standards.Full Changelog: 4.5.0...4.5.1
[PARTIAL BREAKING CHANGE] Namespace is now an enum, and the entries are now of the Namespace type. They all have a value function to return the intern…
Uuid.NAMESPACE* and UuidV5.NAMESPACE, and switch to using a proper const enum for this. (thanks @bymoye)
Namespace enum in enums.dart.Uuid.NAMESPACE* and UuidV5.NAMESPACE in order to give deprecation time.bytes getter to Namespace enum.Namespace is now an enum, and the entries are now of the Namespace type. They all have a value function to return the internal stringCryptoRNG as the default by @Rexios80 in #126Full Changelog: 4.4.2...4.5.0
fix: downgrade meta dependency by @techouse in #121
Fix UUIDv1 to use millisecondsSinceEpoch instead of microsecondsSinceEpoch. Matches UUIDv6 and passes vector tests.
Full Changelog: 4.4.0...4.4.1
Fix MathRNG with Seed being recreated on each use, generating the same list of bytes. (thanks @showband)
Full Changelog: 4.3.3...4.4.0
Using bitshifts on anything over 32bits get truncated. Switched to a more naive solution for now. Hopefully dart2wasm fixes things.
_randomData() functionsfixnum package to handle issues in v6, time, and javascript.Full Changelog: 4.3.2...4.3.3
Added toFormattedString() to UuidValue to handle cases where the UUID used has no hyphens but you wnt them for output.
toFormattedString() to UuidValue to handle cases where the UUID used has no hyphens but you wnt them for output.meta to 1.10.0 to not conflict with flutter_testFull Changelog: 4.3.1...4.3.2
Add additional optional parameters for parseing and validation for the new noDashes flag.
[PARTIAL BREAKING CHANGE] Changing MathRNG implementation to use 4 nextints, instead of 16 for optimization to match CryptoRNG. This will affect regen…
Fix CryptoRNG on Web generating a random number 0 always
Lower meta dependency to 1.9.1 so that it is compatible with Flutter Stable 3.13
meta dependency to 1.9.1 so that it is compatible with Flutter Stable 3.13[BREAKING CHANGE] Deprecate default/empty UuidValue constructor because it has a different behavior from the 3.x package version. (Thanks @davidmartos…
UuidValue constructor because it has a different behavior from the 3.x package version. (Thanks @davidmartos96)
UuidValue.fromString() instead, which has the same behavior. If you need to define a const UuidValue you can use UuidValue.raw(), but making sure the value is lowercase.UuidValue as experimental with an annotation. (Thanks @Kaival-Patel)[BREAKING CHANGE] In order to enforce lowercase strings in UuidValue, I have made the default const constructor private, and added a fromString factor…
UuidValue, I have made the default const constructor private, and added a fromString factory constructor. Please migrate any direct UuidValue() usage to UuidValue.fromString() or UuidValue.withValidation().toBytes on UuidValue now does not validate by default, but has the option validate that can be set to true if you need validation when calling it. (Th
validate that can be set to true if you need validation when calling it. (Thanks @Erhannis)Nothing published for this version
[BREAKING CHANGE] Replacing UuidUtil rng functions with RNG classes.
RNG abstract class.[BREAKING CHANGE] The Uuid class now takes a GlobalOptions class instead of a Map .
Uuid class now takes a GlobalOptions class instead of a Map<String, dynamic>.options parameter in v1, v4, and v5 to deprecated.validate() function on it.Nothing published for this version
Break up versions into individual objects that can be used standalone.
time, version, and variant functions to UuidValueFixed parse to allow buffers larger than 16 bytes to be used. [Thanks @hoylen]
Enable avoid_dynamic_calls linting and fix appropriately. (Thanks @devoncarew)
avoid_dynamic_calls linting and fix appropriately. (Thanks @devoncarew)Global options were incorrectly being ignored. #76 (Thanks @Skycoder42)
isValidUUID now handles some Microsoft GUIDs better that only deviate in the Variant setting. (Thanks @FluentChange)
isValidUUID now handles some Microsoft GUIDs better that only deviate in the Variant setting. (Thanks @FluentChange)\[Experimental\]\[BREAKING CHANGE\] Change toBytes in UuidValue to return Uint8List instead of List
fromByteList and fromList to UuidValue== operator override and hashcode override. (Thanks @giorgiofran for suggestion)parseAsByteList to offer a direct output to Uint8ListtoBytes in UuidValue to return Uint8List instead of List<int>isValidUuid function signature has changed, now takes 2 optional parameters fromString and fromList that will do the appropriate validation on different sources.[Experimental] Add flags to UuidValue constructor and parse to disable validation of the UUID, primarily to allow Microsoft GUIDs to not break things.
Fix RNG to not need shuffling and improve performance/memory usage (Thanks @julemand101)
* Release nullsafety version.
[BREAKING CHANGE] Changed parse() to throw a FormatException instead of returning NIL uuids or partially handled UUIDs.
parse() to throw a FormatException instead of returning NIL uuids or partially handled UUIDs.Uuid constructor to be constant, and adjusted all the code accordingly.isValidUUID function for validating UUIDs.parse and unparse are now static functions.Migrate package to null-safety, increase minimum SDK version to 2.12 (Thanks @simolus3)
v2.2.1 & v2.2.2
Nothing published for this version
Nothing published for this version
fix v1 clock high to properly ignore c and d variants. (fixes #47)
Shuffle mathRNG bytes so that they don't generate duplicates. Will affect codes generated by a static seed.
Remove new keyword where not needed. (forgot to rerun before releasing 2.0.3)
Do some analyzer fixes and formatting/renaming.
Merge fix for time precision loss in V1 time based UUIDs.
Fix regression where CryptoRNG was default, moved back to MathRNG
Fixup the API to split out Buffer and Non-buffer usages.
Nothing published for this version
Fix SDK constraints to allow Dart 2.0 stable.
Fix constants breaking in Dart 1.x, need to be backwards compatible.
Fix constants to match Dart 2.0 spec
Has been stable for a long time, upgrading to 1.0 version
Merged pull request to support crypto 2.0.0
Merged pull request to upgrade crypto library to 1.0.0.
Merged pull request for various updates and cleanup.
Reverted back to custom AES implementation. Moved RNG methods to UuidUtil (import 'package:uuid/uuid_util.dart')
Changed initCipher location so that if you ever only use v1 UUIDs, you will get a very small Dart2JS output compared to v4 or v5 that do load it.
Use Cipher base.dart, as I don't need entropy generators, and this allows me to merge client/server together again and fix many issues this caused.
* Fix import/library bug.
Update pubspec to allow installation of the latest Cipher 0.7.
Updated to latest Cipher at 0.6.0. This created a breaking change in the imports. Please make sure you update your code.
Pegging cipher to 0.4.0 temporarily for browser support
* Using new version of cipher.
Switched from custom AES to cipher package AES.
* Adjusting usage of constants. * Fixing tests.
* Stupid typo on import.
Your coding agent can read these notes before it upgrades. Set up the MCP server →