Expand description
uor-addr — UOR-ADDR, the typed reference vocabulary for typed
content-addressing across recursively-grammared formats.
UOR-ADDR sits at the standard-library layer per ADR-031: every
format-specific addressing realization shares the common
architectural surface — the AddressInput trait, the single
AddrBounds capacity profile, the single AddressLabel output
shape, and the single format-independent AddressResolverTuple
ψ-tower — while supplying its own concrete prism_model! + verb!
plus a canonical-form input handle (ADR-060: the handle’s
as_binding_value produces the canonical bytes as a source-
polymorphic prism::operation::TermValue carrier, so the ψ-tower is
shared verbatim and there is no fixed input buffer or size cap).
§Authoritative sources
Every realization shipped in this crate cites the authoritative
standard for the canonical form it implements. The complete index
lives in STANDARDS.md;
each module’s docstring carries the same citation inline.
- JSON realization — RFC 8259 (syntax), RFC 8785 (canonical form), UAX #15 (NFC), FIPS 180-4 (SHA-256).
- S-expression realization — Rivest 1997 canonical S-expressions
(
Sexp.txt), RFC 2693 §3 (SPKI canonical form citation), FIPS 180-4 (SHA-256). - Storage cost-model variant — ADR-048 typed-commitment surface, ADR-047 U6 bandwidth-additivity, QS-06 storage-tier admission exemplar.
§Module layout
common— the shared architectural surface (trait, V&V framing).hash— the pluggable σ-axis family (AddrHash): sha256 (default), blake3, sha3-256, keccak256, sha512 — every realization’saddress_<algorithm>entry points.label— the per-axisAddressLabel*output shapes (https://uor.foundation/addr/AddressLabel/<algorithm>) and the width-genericKappaLabelκ-label carrier.- Format-specific realizations —
json(JCS-RFC8785 + NFC),sexp(Rivest 1997),xml(W3C XML-C14N 1.1 subset),asn1(X.690 DER),ring(UOR-Framework Amendment 43 §2),codemodule(CCMAS),cbor(RFC 8949 §4.2). - Schema-pinned descendants —
schema::photo,schema::document,schema::codemodule_signed. - Cost-model-bearing variants —
variant::storage(AndCommitment<…, LexicographicLessEqThreshold>),variant::signed(SingletonCommitment<UltrametricCloseTo<2>>). - Categorical composition —
composition(ADR-061): the five operations on the Atlas image inside E₈ —g2(commutative binary product),f4(± involution quotient),e6(degree-partition filtration),e7(S₄-orbit augmentation),e8(direct embedding) — each on all five σ-axes, composing operand κ-labels into a new one.
§What’s shipped
The full UOR-ADDR architectural surface — common trait + a pluggable
σ-axis family (sha256 / blake3 / sha3-256 / keccak256 / sha512) + seven
format-specific realizations + three schema-pinned descendants +
two cost-model-bearing variants. See
ARCHITECTURE.md
for the architectural commitments each realization upholds and
STANDARDS.md
for the authoritative-source citations.
§Validation & verification against the wiki specification
Each architectural commitment names the wiki ADR or concept it
satisfies. The wiki at
https://github.com/UOR-Foundation/UOR-Framework/wiki is the
normative source.
| Wiki commitment | Crate realisation |
|---|---|
| ADR-007 / ADR-010 pluggable Hasher (substrate ships none) | hash::AddrHash — sha256 / blake3 / sha3-256 / keccak256 (prism::crypto) |
ADR-031 Prism standard library (uor-prism façade) | prism::pipeline / vocabulary / seal / crypto |
| ADR-018 / ADR-037 HostBounds capacity profile | the single shared AddrBounds (every realization binds it) |
| ADR-020 PrismModel<H, B, A, R, C> declaration | json::AddressModel (and one per realization) |
| ADR-023 typed-iso input shape | json::JsonValue (and one per format) |
| ADR-024 implementation closure (verb!-emitted bodies) | json::address_inference (one per realization) |
| ADR-027 sealed Output shape (output_shape!-emitted) | AddressLabel + per-axis AddressLabel{Blake3,Sha3_256,Keccak256} |
| ADR-035 canonical k-invariants branch ψ_1 → ψ_7 → ψ_8 → ψ_9 | every realization’s address_inference body |
| ADR-035 verb-body ψ-residuals discipline | verb_arena_contains_no_sigma_residuals test per realization |
| ADR-036 ResolverTuple (eight resolver categories) | the single shared AddressResolverTuple (format-independent) |
| ADR-046 canonicalization at carrier production | each input handle’s as_binding_value (host boundary, not ψ_9) |
| ADR-048 TypedCommitment (5th model parameter) | EmptyCommitment default; variant::storage non-default |
| ADR-057 bounded recursive structural typing | the recursive parsers’ native-stack depth guards (MAX_*_DEPTH) |
| ADR-060 source-polymorphic value carrier (no fixed buffer) | input handles yield Inline/Borrowed/Stream prism::operation::TermValue |
| TC-02 mechanism sealing | AddressWitness owns the replayable Trace<256> + fingerprint |
| TC-05 replay round-trip (anamorphism) | AddressWitness::verify via prism::replay::certify_from_trace |
| Algebraic closure (ADR-024 / ADR-026) | SITE_COUNT disjoint Site constraints; χ(N(C)) = SITE_COUNT (71 sha256/blake3, 73 sha3-256, 74 keccak256, 135 sha512) |
§Quick reference
json::address— the JSON entry point: canonicalizes raw JSON bytes (JCS-RFC8785 + NFC) and folds the borrowed canonical form through the model’sforward()method.sexp::address— the S-expression entry point.AddressInput— the common trait every realization implements.AddressLabel— the default (sha256) ψ-pipeline output shape (71 sites — the wire-formatsha256:<64hex>width); the other axes bindAddressLabel{Blake3,Sha3_256,Keccak256}.
Re-exports§
pub use bounds::AddrBounds;pub use bounds::AddrBounds64;pub use bounds::ADDR_INLINE_BYTES;pub use bounds::ADDR_INLINE_BYTES_64;pub use common::AddressInput;pub use hash::AddrHash;pub use hash::MAX_DIGEST_BYTES;pub use hash::MAX_LABEL_BYTES;pub use label::AddressLabel;pub use label::AddressLabelBlake3;pub use label::AddressLabelKeccak256;pub use label::AddressLabelSha256;pub use label::AddressLabelSha3_256;pub use label::AddressLabelSha512;pub use label::KappaLabel;pub use label::LabelDecodeError;pub use label::ADDRESS_LABEL_BYTES;pub use outcome::AddressOutcome;pub use outcome::AddressWitness;pub use outcome::VerifyError;pub use resolvers::AddressResolverTuple;
Modules§
- asn1
uor_addr::asn1— the ASN.1 realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-asn1).- bounds
AddrBounds— the singleHostBoundscapacity profile shared by every UOR-ADDR realization (ADR-037), and the foundation-derived inline-carrier widthADDR_INLINE_BYTES(ADR-060).- canonical
- Canonical-form byte primitives —
no_std,no_alloc, slice-in / slice-out. - cbor
uor_addr::cbor— the CBOR realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations”).- codemodule
uor_addr::codemodule— the code-module AST realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-codemodule).- common
- UOR-ADDR’s common architectural surface — the declarations every format-specific addressing realization shares.
- composition
uor_addr::composition— the five categorical operations on the Atlas image inside E₈ (wiki ADR-061).- gguf
uor_addr::gguf— the GGUF v3 realization of UOR-ADDR.- hash
crate::hash— the pluggable σ-axis hash family (wiki ADR-007 / ADR-010: the substrate ships no hasher; the application selects one).- json
uor_addr::json— the JSON realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-json).- label
AddressLabel*— UOR-ADDR’s common output shape family (ARCHITECTURE.md “Common output shape”), one specialization per admissible σ-axis (crate::hash).- onnx
uor_addr::onnx— the ONNX realization of UOR-ADDR.- outcome
- Pipeline-output carrier — the shape every realization’s
address()entry point returns. - resolvers
AddressResolverTuple— the single eight-resolver tower shared by every UOR-ADDR realization (ADR-036).- ring
uor_addr::ring— the ring-element realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-ring).- schema
uor_addr::schema— UOR-ADDR’s schema-pinned descendants (ARCHITECTURE.md “Schema-pinned descendants”).- sexp
uor_addr::sexp— the S-expression realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-sexp).- variant
uor_addr::variant— UOR-ADDR’s cost-model-bearing variants (ARCHITECTURE.md “Cost-model-bearing variants”).- xml
uor_addr::xml— the XML realization of UOR-ADDR (ARCHITECTURE.md “Format-specific realizations” §uor-addr-xml).
Structs§
- Blake3
Hasher - The admissible σ-axes (re-exports of prism’s hashers). Every realization
binds
Sha256Hasherby default and admits the others via itsaddress_<algorithm>entry points.Sha512Hasheris aHasher<64>(bound withAddrBounds64); the rest areHasher<32>. BLAKE3 hasher. 32-byte digest (the standard BLAKE3 output width; XOF mode is not exposed at the axis level). - Empty
Commitment - Wiki ADR-048: the no-commitment baseline.
bandwidth_bits = 0,accept_prob = 1,evaluate = true,predicate_count = 0. Direct correspondence totype:Conjunction’s empty case. The foundation-default forPrismModel’s 5th substrate parameter. - Keccak256
Hasher - The admissible σ-axes (re-exports of prism’s hashers). Every realization
binds
Sha256Hasherby default and admits the others via itsaddress_<algorithm>entry points.Sha512Hasheris aHasher<64>(bound withAddrBounds64); the rest areHasher<32>. Keccak-256 hasher. 32-byte digest. The pre-FIPS-202 sponge (the variant adopted by Ethereum); distinguished from SHA3-256 by the 0x01 vs 0x06 domain-separation byte. - Sha3_
256Hasher - The admissible σ-axes (re-exports of prism’s hashers). Every realization
binds
Sha256Hasherby default and admits the others via itsaddress_<algorithm>entry points.Sha512Hasheris aHasher<64>(bound withAddrBounds64); the rest areHasher<32>. FIPS-202 SHA3-256 hasher. 32-byte digest. - Sha256
Hasher - The admissible σ-axes (re-exports of prism’s hashers). Every realization
binds
Sha256Hasherby default and admits the others via itsaddress_<algorithm>entry points.Sha512Hasheris aHasher<64>(bound withAddrBounds64); the rest areHasher<32>. FIPS-180-4 SHA-256 hasher. 32-byte digest. - Sha512
Hasher - The admissible σ-axes (re-exports of prism’s hashers). Every realization
binds
Sha256Hasherby default and admits the others via itsaddress_<algorithm>entry points.Sha512Hasheris aHasher<64>(bound withAddrBounds64); the rest areHasher<32>. FIPS-180-4 SHA-512 hasher. 64-byte digest.