Skip to main content

Crate mnemefusion_core

Crate mnemefusion_core 

Source
Expand description

MnemeFusion Core

A unified memory engine for AI applications—“SQLite for AI memory.”

MnemeFusion provides four-dimensional memory indexing (semantic, temporal, causal, entity) in a single embedded database file with zero external dependencies.

§Quick Start

use mnemefusion_core::{MemoryEngine, Config};

// Open or create a database
let engine = MemoryEngine::open("./brain.mfdb", Config::default()).unwrap();

// Add a memory
let embedding = vec![0.1; 384]; // Your embedding vector
let id = engine.add(
    "Project deadline moved to March 15th".to_string(),
    embedding,
    None,
    None,
    None,
    None,
).unwrap();

// Retrieve a memory
let memory = engine.get(&id).unwrap();

// Close the database
engine.close().unwrap();

§Architecture

MnemeFusion is built on:

  • redb: ACID-compliant embedded storage
  • usearch: High-performance vector similarity search (HNSW)
  • petgraph: Graph algorithms for causal and entity relationships

All data is stored in a single .mfdb file, making it easy to backup, version, and deploy.

Re-exports§

pub use config::Config;
pub use error::Error;
pub use error::Result;
pub use graph::CausalEdge;
pub use graph::CausalPath;
pub use graph::CausalTraversalResult;
pub use graph::EntityQueryResult;
pub use graph::GraphManager;
pub use index::TemporalIndex;
pub use index::TemporalResult;
pub use index::VectorIndex;
pub use index::VectorIndexConfig;
pub use index::VectorResult;
pub use ingest::EntityExtractor;
pub use ingest::SimpleEntityExtractor;
pub use memory::contextualize_for_embedding;
pub use memory::first_person_to_third;
pub use memory::EmbeddingFn;
pub use memory::MemoryEngine;
pub use memory::ScopedMemory;
pub use query::AdaptiveWeightConfig;
pub use query::FusedResult;
pub use query::FusionEngine;
pub use query::IntentClassification;
pub use query::IntentClassifier;
pub use query::IntentWeights;
pub use query::QueryIntent;
pub use query::QueryPlanner;
pub use slm::SlmConfig;
pub use trace::Trace;
pub use trace::TraceRecorder;
pub use trace::TraceStep;
pub use trace::TraceValue;
pub use types::AddResult;
pub use types::BatchError;
pub use types::BatchResult;
pub use types::Entity;
pub use types::EntityId;
pub use types::FilterOp;
pub use types::Memory;
pub use types::MemoryId;
pub use types::MemoryInput;
pub use types::MetadataFilter;
pub use types::Source;
pub use types::SourceType;
pub use types::Timestamp;
pub use types::UpsertResult;
pub use types::NAMESPACE_METADATA_KEY;
pub use types::SOURCE_METADATA_KEY;

Modules§

config
Configuration types for MnemeFusion
embedding
Embedding model integration for automatic text vectorization.
error
Error types for MnemeFusion
graph
Graph module for causal and entity relationships.
index
Index layer - vector, temporal, and keyword indexing
ingest
Ingestion module for entity extraction and memory preprocessing
memory
Memory engine - main API entry point
query
Query module for intent classification and multi-dimensional retrieval
slm
Small Language Model (SLM) integration for semantic intent classification
storage
Storage layer for MnemeFusion
trace
Pipeline observability / tracing
types
Core types for MnemeFusion
util
Utility functions

Macros§

trace_begin
Begin a named step on an Option<&mut TraceRecorder>. No-op when the recorder is None.
trace_record
Record a key-value pair on an Option<&mut TraceRecorder>. No-op when the recorder is None.