Skip to content

WorldResolvable/ruuid-draft

Repository files navigation

Resolvable UUIDs

Resolvable UUIDs (RUUIDs) are standard 128-bit RFC 9562 Universally Unique Identifiers which can be dereferenced, enabling them to be used both as UUIDs and in contexts where locators are required, not just opaque identifiers.

RUUIDs currently fit within the RFC 9562 definitions as a variant 10, version 8 Custom/Experimental UUID version. An RUUID encodes an IPv6 /64 network prefix, or an IPv4 address (/32) encapsulated as an IPv6 6to4 network prefix. These network prefixes may be resolved to a domain name via a reverse DNS lookup (a PTR record in DNS). The domain can be further resolved to a Controlled Identifier document, which the spec refers to as the "UUID Document". Once retrieved, this can be used along with the fields of the UUID to yield a URI which can be used to dereference the UUID. A well-known template is also defined which may allow RUUIDs to be resolved when there is no UUID Document.

Thus, a UUID conforming to this specification can be generated and dereferenced using generally available Internet infrastructure.

This repo houses two specifications:

The Markdown (.md) source code for the Internet Draft is provided, as well as .xml, .txt, and .html versions, which are build artifacts committed to the repo for the convenience of reviewers, so that building the Markdown source is not required.

A Python reference implementation for RUUIDs is also available on GitHub, in the ruuid-tools repository.

Build the Internet-Draft

Dependencies: kramdown-rfc (Ruby gem) and xml2rfc (Python).

gem install kramdown-rfc
python3 -m pip install --user xml2rfc
make

About

Internet-Draft and did:uuid method specification for Resolvable UUIDs

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors