OpenAgentID documentation
Source referencesRust module referenceoas-resolve

oas-resolve · crate

Declared module signatures, types, configuration, and source documentation.

Source: oas/oas/oas-resolve/src/lib.rs. SHA-256: cbec0de8bef5896f07fe96d25b680e99d01f120a9c7e9463ecb1a6655996d0d2.

This source reference follows declared modules and preserves feature attributes. It includes public declarations and implementation methods in those modules. Private-module exports and trait resolution still require the compiler; not every declaration is a crate-root import. Function bodies and constant values are omitted. Source comments describe their implementation context and are not a production deployment claim.

anchored

oas-resolve

DID resolution for the Open Agent Specification (OAS).

This crate provides the Resolver trait and several implementations for resolving did:oas identifiers to OAS Identity Documents.

Key Types

Design

Per OAS Specification §12, resolution is defined as an abstract protocol. This crate provides the trait and utility implementations. Concrete backends (DHT, HTTP, blockchain) implement the Resolver trait.

Example

use oas_resolve::resolver::Resolver;
use oas_resolve::memory::InMemoryResolver;
use oas_document::builder::DocumentBuilder;
use oas_document::conformance::ConformanceLevel;
use oas_crypto::keypair::OasKeyPair;

# tokio_test::block_on(async {
let keypair = OasKeyPair::generate();
let doc = DocumentBuilder::new("did:oas:test:hmr:alice", "hmr")
    .conformance_level(ConformanceLevel::L1)
    .add_verification_method(&keypair)
    .build_and_sign(&keypair, "2026-01-15T00:00:00Z")
    .unwrap();

let resolver = InMemoryResolver::new();
resolver.register(doc);

let resolved = resolver.resolve("did:oas:test:hmr:alice").await.unwrap();
assert_eq!(resolved.id, "did:oas:test:hmr:alice");
# });
pub mod anchored;

Source line: 48.

cache

pub mod cache;

Source line: 49.

error

pub mod error;

Source line: 50.

fallback

pub mod fallback;

Source line: 51.

memory

pub mod memory;

Source line: 52.

metadata

pub mod metadata;

Source line: 53.

resolver

pub mod resolver;

Source line: 54.

pub use anchored::{

document_metadata_commitment, org_leaf_hash, AnchorError, AnchorRecord, AnchorStatus, AnchoredResolver, LineageAnchor, MemoryAnchor, OrgLineageRoot, };

pub use anchored::{
    document_metadata_commitment, org_leaf_hash, AnchorError, AnchorRecord, AnchorStatus,
    AnchoredResolver, LineageAnchor, MemoryAnchor, OrgLineageRoot,
};

Source line: 56.

pub use error::ResolveError;

pub use error::ResolveError;

Source line: 60.

pub use anchored::{

AnchorError as GalSourceError, AnchorRecord as GalRootAnchor, AnchorStatus as GalRevocationStatus, AnchoredResolver as SigilGuardedResolver, LineageAnchor as SigilGalSource, MemoryAnchor as MemoryGalSource, OrgLineageRoot as GalOrgLineageRoot, };

pub use anchored::{
    AnchorError as GalSourceError, AnchorRecord as GalRootAnchor,
    AnchorStatus as GalRevocationStatus, AnchoredResolver as SigilGuardedResolver,
    LineageAnchor as SigilGalSource, MemoryAnchor as MemoryGalSource,
    OrgLineageRoot as GalOrgLineageRoot,
};

Source line: 65.

On this page