harness-rs-memory 0.0.62

Every memory and recall backend for harness-rs behind one door: open_memory(url) / open_recall(url) pick the store from the URL. JSONL files with no features; SQLite FTS5, SurrealDB (embedded or remote, BM25 + HNSW hybrid) and CortexDB each behind a feature, so you compile only the store you run.
docs.rs failed to build harness-rs-memory-0.0.62
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Every memory and recall backend behind one door.

The interfaces are [harness_core::Memory] (curated facts) and [harness_core::RecallStore] (raw transcripts). This crate holds the implementations and one way to pick between them: a URL.

URL store feature memory recall
file://<path> JSONL on disk (harness-context) none
sqlite://<file> SQLite, FTS5 + trigram sqlite
mem:// SurrealDB in-process, not persisted surreal
surrealkv://<dir> SurrealDB in-process, on disk surreal
ws://host:port a running surreal start surreal-remote
cortexdb+http://<url> CortexDB over MCP cortexdb
cortexdb://host:port CortexDB over gRPC cortexdb-grpc
# async fn demo() -> Result<(), harness_core::MemoryError> {
let memory = harness_memory::open_memory("surrealkv:///var/lib/myapp/memory").await?;
memory.write(harness_core::MemoryEntry::new("user prefers dark mode")).await?;
# Ok(()) }

A URL for a backend that was not compiled in is an error naming the feature to enable, not a silent fallback to the file store: the operator asked for a specific store and should get it or hear why not.

Each backend is also a public module, for callers that want the concrete type — [surreal::SurrealMemory] has compact(), sqlite::SqliteRecall opens in memory, and so on.