[package] name = "vestige-core" version = "2.0.7" edition = "2024" rust-version = "1.91" authors = ["Vestige Team"] description = "Cognitive memory engine - FSRS-6 spaced repetition, semantic embeddings, and temporal memory" license = "AGPL-3.0-only" repository = "https://github.com/samvallad33/vestige" keywords = ["memory", "spaced-repetition", "fsrs", "embeddings", "knowledge-graph"] categories = ["science", "database"] [features] default = ["embeddings", "ort-download", "vector-search", "bundled-sqlite"] # SQLite backend (default, unencrypted) bundled-sqlite = ["rusqlite/bundled"] # Encrypted SQLite via SQLCipher (mutually exclusive with bundled-sqlite) # Use: --no-default-features --features encryption,embeddings,ort-download,vector-search # Set VESTIGE_ENCRYPTION_KEY env var to enable encryption encryption = ["rusqlite/bundled-sqlcipher"] # Embedding code paths (fastembed dep, hf-hub, image-models). This feature # enables the #[cfg(feature = "embeddings")] gates throughout the crate but # does NOT pick an ort backend. Pair with EXACTLY ONE of `ort-download` # (prebuilt ONNX Runtime, default) or `ort-dynamic` (runtime-linked system # libonnxruntime, required on targets without prebuilts). embeddings = ["dep:fastembed", "fastembed/hf-hub-native-tls", "fastembed/image-models"] # Default ort backend: ort-sys downloads prebuilt ONNX Runtime at build time. # Requires glibc >= 2.38. Fails on x86_64-apple-darwin (Microsoft is # discontinuing Intel Mac prebuilts after ONNX Runtime v1.23.0). ort-download = ["embeddings", "fastembed/ort-download-binaries-native-tls"] # HNSW vector search with USearch (20x faster than FAISS) vector-search = ["dep:usearch"] # Alternative ort backend: runtime-linked against a system libonnxruntime via # dlopen. Required on Intel Mac and on systems with glibc < 2.38 (Ubuntu # 22.04, Debian 12, RHEL/Rocky 9). Transitively enables `embeddings` so the # #[cfg] gates stay active. # # Usage: cargo build --no-default-features \ # --features ort-dynamic,vector-search,bundled-sqlite # Runtime: export ORT_DYLIB_PATH=/path/to/libonnxruntime.{dylib,so} # (e.g. $(brew --prefix onnxruntime)/lib/libonnxruntime.dylib) ort-dynamic = ["embeddings", "fastembed/ort-load-dynamic"] # Nomic Embed Text v2 MoE (475M params, 305M active, Candle backend) # Requires: fastembed with nomic-v2-moe feature nomic-v2 = ["embeddings", "fastembed/nomic-v2-moe"] # Qwen3 Reranker (Candle backend, high-precision cross-encoder) qwen3-reranker = ["embeddings", "fastembed/qwen3"] # Metal GPU acceleration on Apple Silicon (significantly faster inference) metal = ["fastembed/metal"] [dependencies] # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # Date/Time with full timezone support chrono = { version = "0.4", features = ["serde"] } # UUID v4 generation uuid = { version = "1", features = ["v4", "serde"] } # Error handling thiserror = "2" # Database - SQLite with FTS5 full-text search and JSON # Note: "bundled" or "bundled-sqlcipher" added via feature flags above rusqlite = { version = "0.38", features = ["chrono", "serde_json"] } # Platform-specific directories directories = "6" # Async runtime (required for codebase module) tokio = { version = "1", features = ["sync", "rt-multi-thread", "macros"] } # Tracing for structured logging tracing = "0.1" # Git integration for codebase memory # vendored-openssl: Compile OpenSSL from source for cross-compilation support git2 = { version = "0.20", features = ["vendored-openssl"] } # File watching for codebase memory notify = "8" # ============================================================================ # OPTIONAL: Embeddings (fastembed v5 - local ONNX inference, 2026 bleeding edge) # ============================================================================ # nomic-embed-text-v1.5: 768 dimensions, 8192 token context, Matryoshka support # v5.11: Adds Nomic v2 MoE (nomic-v2-moe feature) + Qwen3 reranker (qwen3 feature) fastembed = { version = "5.11", default-features = false, features = ["hf-hub-native-tls", "image-models"], optional = true } # ============================================================================ # OPTIONAL: Vector Search (USearch - HNSW, 20x faster than FAISS) # ============================================================================ # Pinned to 2.23.0 — 2.24.0 introduced a Windows MSVC compile break because # its memory_mapping_allocator_gt template references the POSIX MAP_FAILED # macro from , which doesn't exist on MSVC. Tracked upstream in # unum-cloud/usearch#746. Unpin when the upstream fix lands. usearch = { version = "=2.23.0", optional = true } # LRU cache for query embeddings lru = "0.16" [dev-dependencies] tempfile = "3" criterion = { version = "0.5", features = ["html_reports"] } [[bench]] name = "search_bench" harness = false [lib] name = "vestige_core" path = "src/lib.rs" # Enable doctests doctest = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]