7831c0c827
MonadDb ahora soporta backend dual: - MonadDb::new() → memoria pura (default, back-compat). - MonadDb::open(path) → sled-backed con cache en memoria. Carga contenido existente al abrir; cada insert_* hace write-through (cache + sled). Diseño: - 2 trees sled: files y monads. - Wire format: serde_json (ergonomía + inspectability con sled-cli; los manifests son chicos, JSON gana sobre postcard aquí). - Reads SIEMPRE desde la cache — sled se consulta sólo al abrir. - replace_monads() purga el tree de sled antes de escribir. Bin nouser: nueva env var NOUSER_DB_PATH. Si está set, persiste; si no, in-memory: $ NOUSER_DB_PATH=/tmp/monads.sled nouser scan crates/core scan: 102 archivos, 5 mónadas $ ls /tmp/monads.sled blobs conf Tests nuevos en db.rs: - persistence_roundtrip — escribe, cierra, reabre, datos están. - replace_monads_purges_persistent_tree — replace limpia tree. 24 tests en nouser-core (era 22, +2). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
30 lines
790 B
TOML
30 lines
790 B
TOML
[package]
|
|
name = "nouser-core"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
publish.workspace = true
|
|
description = "Nouser — explorador de Mónadas: scanner, clustering determinista, DB en memoria."
|
|
|
|
[dependencies]
|
|
nouser-card = { path = "../card" }
|
|
nouser-nous = { path = "../nous" }
|
|
brahman-card = { path = "../../../core/brahman-card" }
|
|
brahman-sidecar = { path = "../../../shared/brahman-sidecar" }
|
|
blake3 = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sled = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
ulid = { workspace = true }
|
|
walkdir = "2"
|
|
|
|
[dev-dependencies]
|
|
tempfile = { workspace = true }
|
|
|
|
[[bin]]
|
|
name = "nouser"
|
|
path = "src/bin/nouser.rs"
|