WeaveDocs
Weave Core

Storage Runtime

Storage Runtime in Weave Core. Facade over filesystem, network, storage, identity, crypto, and model crates.

Purpose

Facade over filesystem, network, storage, identity, crypto, and model crates.

This page follows the real source shape for Weave Core and explains the workflow a developer is likely to use first.

Storage contract

Document persistence format, integrity checks, read/write ordering, idempotency, compaction or repair behavior, and how callers recover from partial failures. This section should answer what data is durable and what can be reconstructed.

Primary types to know

  • AgentFs — libs/weave-core/src/filesystem/agentfs.rs
  • AgentFsConfig — libs/weave-core/src/filesystem/agentfs.rs
  • AgentFsEntry — libs/weave-core/src/filesystem/agentfs.rs
  • ContentAnnouncement — libs/weave-core/src/network/dht.rs
  • Dht — libs/weave-core/src/network/dht.rs
  • DhtBehaviour — libs/weave-core/src/network/dht.rs
  • DhtConfig — libs/weave-core/src/network/dht.rs
  • DhtStats — libs/weave-core/src/network/dht.rs
  • Did — libs/weave-core/src/identity/mod.rs
  • Diff — libs/weave-core/src/filesystem/diff.rs
  • DiffEntry — libs/weave-core/src/filesystem/diff.rs
  • DiffSummary — libs/weave-core/src/filesystem/diff.rs

Example shape

use std::sync::Arc;
use weave_core::{Did, Locus};
use weave_identity::Ed25519Adapter;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let owner = Did::new("did:l1fe:agent:storage")?;
    let adapter: Arc<dyn weave_identity::WeaveIdentityAdapter> = Arc::new(Ed25519Adapter::new());

    // Locus is the weave-core storage facade. `create` mints a writable locus
    // owned by the caller; `enable_write_access` is required before mutations.
    let mut locus = Locus::create(owner.clone(), adapter);
    locus.enable_write_access();

    println!(
        "did={} owner={} writable=true",
        locus.did(),
        locus.owner().as_str(),
    );
    Ok(())
}