new-uuid-encoding-techniques-ietf-draft

Disclaimer

This page is a WORK IN PROGRESS. Any all things may change at a moments notice.

Contributing

Summary of Concerns and Tradeoffs

Encoding Variant Example Encoding Output Alphabet Text Length (Max Chars) Padding Checksums Special Characters Character Exclusions Case Sensitive Sorts the Same as Binary URL Path URL Query Param DNS Record Double Click to Copy Supports 128+ bit Inputs Parse(uuid_text) Updatable Makes Everyone Happy SPEC Reference Notes
Base16 UUID f81d4fae-7dec-11d0-a765-00a0c91e6bf6 0123456789ABCDEF- 36 N N Y N N Y Y Y Y N Y Y N RFC9562 Default String Format
Base16 Base f81d4fae7dec11d0a76500a0c91e6bf6 0123456789ABCDEF 32 N N N N N Y Y Y Y Y Y Y N RFC9562  
Base32 Base 7AOU7LT55QI5BJ3FACQMSHTL6Y ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 26 Y N N N N N N N Y N Y Y N RFC4648  
Base32 Hex V0EKVBJTTG8T19R502GCI7JBUO 0123456789ABCDEFGHIJKLMNOPQRSTUV 26 Y N N N N Y Y Y Y N Y Y N RFC4648  
Base32 Crockford Z0EMZBKXXG8X19V502GCJ7KBYR 0123456789ABCDEFGHJKMNPQRSTVWXYZ 26 N Y N Y N* Y Y Y Y Y Y Y N CrB32 Encoding uppercase, decoding can use upper/lower.
Base32 NCName bzjv6jsglv4pkfkyaarninsfbl^ ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 26 Y N N Y N N Y Y Y Y N* Y N NCName May support 128+? Also, example from RFC Draft not RFC9562
Base32 z-base 9yqw9mu77oe7bj5fynoc18um6a ybndrfg8ejkmcpqxot1uwisza345h769 26 N N N Y N N Y Y Y Y Y Y N z-base-32  
Base32 geohash z0fnzcmxxh8x19v502hdk7mcys 0123456789bcdefghjkmnpqrstuvwxyz 26 N N N Y N Y Y Y Y Y Y Y N py-geohash Trailing 0’s removed?
Base36 LiosK EOSWZOLG3BSX0ZN8OTQ1P8OOM^ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 25? N N N N N Y Y Y Y Y Y Y N LIOSK Not sure if there is a better SPEC.
Base48 Fabio jxzgygpFeeYSEhzAZEtNEtY^ ABCDEFGHJKLMNOPQRSTVWXYZabcdefghijkmnopqrstvwxyz 23? N N N Y Y Y Y Y Y Y Y Y N fabiolimace Not sure if there is a better SPEC.
Base52 Fabio VPfYDYZXVvyfMRZxQGSmTka^ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 23 N N N Y Y Y Y Y Y Y Y Y N fabiolimace Not sure if there is a better SPEC. Example is not from RFC9562
Base58 BTC Xe22UfxT3rxcKJEAfL5373 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz 22 N Y N Y Y Y Y Y N Y Y Y N BTC  
Base62 IEEE 7YBUWgZR1mKSqGyj9tVViw 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 22 Y N N N* Y Y Y Y Y Y Y Y N base62spec base62wiki cites IEEE doc. Excludes numeric because not required.
Base64 Base +B1Prn3sEdCnZQCgyR5r9g ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 22 Y N Y N Y N N N N N Y Y N RFC4648  
Base64 URL Safe -B1Prn3sEdCnZQCgyR5r9g ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_ 22 Y N Y N Y N Y Y N N Y Y N RFC4648  
Base64 NCName BymvkyMuvHqKrAARahsihL^ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_ 22 Y N Y N Y N Y Y Y Y N* Y N NCName May support 128+? Also, example from RFC Draft not RFC9562
PLACE HOLDER ` |` xx X X X X X X X X X X X X N [][] Placeholder for new Values  
^ Need Verified, either not from starting point of RFC9562 Fig 2/3 or just need peer review on conversion
? Needs another individual to confirm accuracy
* See Notes at the end.

Number of New Alphabets

Encoding Specific Items

Text Length (Max Chars)

Padding

Checksums

Special Characters

Character Exclusions

Case Sensitive

Sorts the Same as Binary

Misc App Considerations.

URL Path

URL Query Param

DNS Record

HTML/XML

Other Considerations

Double Click to Copy

Supports 128+ bit Inputs

Parse(uuid_text) Updatable

Makes Everyone Happy


TIP

The table above can be quite large, this can help fit more data on one page (or one ultra-wide monitor)

  1. Install Tampermonkey for Chrome or Firefox
    • Chrome Only: Navigate to Chrome://extensions in browser URL. Top right, toggle “Developer mode” switch to on.
  2. Add this script below to make the page fullwidth: ```javascript // ==UserScript== // @name GH Fullwidth // @match https://uuid6.github.io/new-uuid-encoding-techniques-ietf-draft/ // @match https://github.com/uuid6/new-uuid-encoding-techniques-ietf-draft // @require https://code.jquery.com/jquery-3.6.0.min.js // ==/UserScript==

(function() { ‘use strict’; $(“.markdown-body”).css({‘min-width’: ‘100%’}); $(“.container-xl”).css({‘min-width’: ‘100%’}); $(“.Layout”).css({‘min-width’: ‘100%’}); })(); ```

  1. Sortable Markdown Tables can be enabled here: https://stackoverflow.com/questions/42843288/is-there-any-way-to-make-markdown-tables-sortable