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
Resolver— The core async resolution traitInMemoryResolver— In-memory resolver for testingCachingResolver— TTL-based caching wrapperFallbackResolver— Priority-ordered fallback chain- [
ResolveError] — Resolution errors with OAS §12.5 error codes ResolutionMetadata— Resolution process metadata
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.