53dbdf0f1d
Workspace en 4 ejes (core/modules/apps/shared):
- core/: 24 crates de arje (Init systemd-compatible: ente-card, ente-zero,
ente-kernel, ente-bus, ente-cas, ente-soma, ente-wasm, ente-snapshot,
ente-brain, ente-echo, ente-policy-provider, + 12 crates *-compat)
- modules/semantic_dht/: 5 crates de minga (minga-core con AST/CAS/MST,
minga-p2p con libp2p Kad, minga-store, minga-vfs, minga-cli)
- modules/ui_engine/: 11 crates de yahweh (libs/{core,theme,bus,providers},
widgets/{tree,splitter,tabs,tiled,container_core,text_input})
- apps/: 5 crates de yahweh (file_explorer, database_explorer, text_viewer,
image_viewer, yahweh-shell)
- shared_wit/protocol.wit: handshake/lifecycle inicial
Cargo.toml unificado: thiserror bumped a 2 (transparente para arje), tokio
"full", paths intra-workspace de yahweh redirigidos a su nueva ubicación.
cargo check --workspace: 0 errores, 17 warnings (dead code preexistente).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.4 KiB
Rust
37 lines
1.4 KiB
Rust
//! `minga-store`: backing persistente con `sled` para los stores de Minga.
|
|
//!
|
|
//! Tres stores paralelos a los de `minga-core`:
|
|
//! - [`SledNodeStore`]: hashes → `StoredNode`s, equivalente persistente
|
|
//! de `MemStore`.
|
|
//! - [`SledAttestationStore`]: pruebas criptográficas de autoría
|
|
//! indexadas por content hash.
|
|
//! - [`SledMstStore`]: conjunto de claves del MST. La estructura
|
|
//! probabilística del MST se reconstruye en memoria al cargar
|
|
//! ([`SledMstStore::to_in_memory`]) — solo persistimos las claves
|
|
//! porque el árbol es deterministicamente derivable de ellas.
|
|
//!
|
|
//! Una `PersistentRepo` agrupa los tres sobre una única `sled::Db`
|
|
//! (tres trees con namespaces separados).
|
|
//!
|
|
//! El núcleo (`minga-core`) sigue siendo agnóstico de IO: estos tipos
|
|
//! tienen APIs paralelas (devuelven `Result`, deserializan vía
|
|
//! postcard) y los protocolos de sync se quedan operando sobre los
|
|
//! tipos in-memory. La integración con `MingaPeer` (que hoy usa
|
|
//! `MemStore` concreto) llegará tras un trait genérico — esta
|
|
//! iteración se centra en que la capa de persistencia esté correcta
|
|
//! y testeada.
|
|
|
|
pub mod attestation_store;
|
|
pub mod error;
|
|
pub mod keypair_file;
|
|
pub mod mst_store;
|
|
pub mod node_store;
|
|
pub mod repo;
|
|
|
|
pub use attestation_store::SledAttestationStore;
|
|
pub use error::StoreError;
|
|
pub use keypair_file::KeypairFileError;
|
|
pub use mst_store::SledMstStore;
|
|
pub use node_store::SledNodeStore;
|
|
pub use repo::PersistentRepo;
|