frp-persistence — durable storage backend for infinite-db frp.
Implements the [AtomStore], [BlockStore], and [EdgeStore] traits from
frp-loom using infinite-db
as the on-disk storage engine.
Quick-start
use InfiniteDbStore;
use AtomStore;
let mut store = open.unwrap;
// put / get / delete atoms, blocks, edges through the store traits…
store.flush.unwrap;
Design notes
- Write-through cache — the store traits return
&Self::Atomborrowed references, so deserialized values must live inside the struct. All reads are served from in-memoryHashMaps; writes go to both the cache and the WAL. EdgeTransform::Inlineclosures are not serializable and round-trip asPassThrough. Re-attach closures after loading a graph from the store.- Call [
InfiniteDbStore::flush] before process exit to seal WAL records into on-disk blocks.