[Go to site: main page, start]

uuid 4.6.0 copy "uuid: ^4.6.0" to clipboard
uuid: ^4.6.0 copied to clipboard

RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart

uuid #

Version 4.x.x is a complete redesign of the underlying setup, but tries to be API compatible or similar to 3.x.

Build Status

Simple, fast generation of RFC4122 and RFC9562 UUIDs.

Features:

  • Generate RFC4122 version 1, version 4, or version 5 UUIDs
  • Supports RFC9562 version 6, version 7, and version 8
  • Runs in web, server, and flutter
  • Cryptographically strong random number generation on all platforms
  • Validate and parse generic 128-bit hexadecimal values without enforcing UUID version or variant bits
  • Documentation

Getting Started #

Instructions #

  1. Open a command line and cd to your projects root folder
  2. In your pubspec, add an entry for dart-uuid to your dependencies (example below)
  3. pub install
  4. If you wish to run tests, go into packages/dart-uuid/ and run 'dart test/uuid_test.dart'

Pubspec #

dependencies:
  uuid: ^4.6.0
import 'package:uuid/uuid.dart';

var uuid = Uuid();

Then create some ids ...

// Generate a v1 (time-based) id
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'

// Generate a v4 (random) id
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'

// Generate a v5 (namespace-name-sha1-based) id
uuid.v5(Uuid.NAMESPACE_URL, 'www.google.com'); // -> 'c74a196f-f19d-5ea9-bffd-a2742432fc9c'

Structural 128-bit parsing #

Use the explicit format APIs when the input must be a 128-bit hexadecimal value but UUID version and variant bits should not be enforced.

const value = '019f13f5-53cb-b219-ca3e-4b569376f32b';

Uuid.isValidUUIDFormat(fromString: value); // true
Uuid.parseHex128(value); // 16 bytes

const withoutDashes = '019f13f553cbb219ca3e4b569376f32b';
Uuid.parseHex128(withoutDashes, noDashes: true); // 16 bytes

Documentation #

For documentation, please visit the Documentation page. Examples are included for most functions and classes.

For more complex examples and other usages, please look at the tests.

Release notes #

See CHANGELOG