HomeDevCentral

Implement UUIDv1 UUIDv6 UUIDv7 and UUIDv8

Description

Implement UUIDv1 UUIDv6 UUIDv7 and UUIDv8

Summary:
There is currently a proposal for new UUID to address concerns,
and create identifiers suitable for database purpose as primary key.

This change implements UUIDv6, UUIDv7 and UUIDv8 from that proposal.

Allow to convert back and forth between UUIDv1 and UUIDv6.

Allow to represent timestamps for UUIDv1/UUIDv6 or UUIDv7.

Allow to determine version and variant from a UUID.

References:

  • RFC 4122 for UUIDv1
  • I-D draft-peabody-dispatch-new-uuid-format-03 for UUIDv6 UUIDv7 UUIDv8

Ref T1717.

Test Plan: Full coverage of added code by unit tests.

Reviewers: dereckson

Reviewed By: dereckson

Maniphest Tasks: T1717

Differential Revision: https://devcentral.nasqueron.org/D2660

Details

Provenance
derecksonAuthored on Apr 9 2022, 07:59
derecksonPushed on Mar 31 2023, 16:05
Reviewer
dereckson
Differential Revision
D2660: Implement UUIDv1 UUIDv6 UUIDv7 and UUIDv8
Parents
rKOT889ab94f932e: Represent a bits vector
Branches
Unknown
Tags
Unknown
Tasks
T1717: Implement new UUID RFC