Expand description
decdn: URIs (#2449): one string names a blob, a whole bundle, or one file
inside a bundle, with an optional namespace routing hint.
decdn:<hash>[/<path>][?ns=<id>]| URI | Names |
|---|---|
decdn:<hash> | the raw blob |
decdn:<hash>/ | the whole bundle whose manifest has this hash |
decdn:<hash>/a/b.txt | one entry of that bundle |
any of the above with ?ns=42 | the same, with the namespace routing hint |
<hash>is 64 hex characters, bare: nob3:or0xprefix. Parsing accepts uppercase andDecdnUri’sDisplaywrites lowercase.- The URI has no
//authority part, likemagnet:andurn:. - A trailing
/marks a bundle. The URI author knows whether they published one, so the client never inspects content to decide. <path>is the manifest entry’s relative POSIX path, each segment percent-encoded as an RFC 3986pchar. It names exactly one manifestpath, literally.nsis the namespace id in decimal (ADR 002), never0. It is a routing hint, not part of the identity, so it sits in the query.- Any other query key is an error.
The URI is client-side syntax only: it resolves to what the wire already
carries, a BLAKE3 hash plus the namespace_id hint.
Structs§
- Decdn
Uri - A parsed
decdn:URI.Displaywrites its canonical form, which parses back to an equal value.
Enums§
Constants§
- SCHEME
- The scheme prefix every
decdn:URI starts with.