context-forge 0.7.0

Local-first persistent memory for LLM applications - turso + Tantivy BM25 retrieval, recency decay, token-budget context assembly, secret scrubbing, and optional local-LLM distillation.
Documentation
[package]
name = "context-forge"
version = "0.7.0"
edition = "2021"
license = "Apache-2.0"
description = "Local-first persistent memory for LLM applications - turso + Tantivy BM25 retrieval, recency decay, token-budget context assembly, secret scrubbing, and optional local-LLM distillation."
repository = "https://github.com/asvarnon/context-forge"
readme = "README.md"
keywords = ["llm", "memory", "agent", "bm25", "turso"]
categories = ["database-implementations", "text-processing", "caching"]
exclude = [
    ".github/",
    "docs/",
    "scripts/",
    ".claude/",
    ".cargo/",
    ".gitignore",
    "cliff.toml",
    "release.toml",
    "CONTRIBUTING.md",
    "CHANGELOG.md",
    "rust-toolchain.toml",
]

[lib]
name = "context_forge"
path = "src/lib.rs"

[features]
default = ["analysis"]
analysis = ["dep:stop-words"]
parallel = ["dep:rayon", "analysis"]
distill-http = ["dep:reqwest"]
semantic = ["dep:fastembed"]

[dependencies]
tracing = "0.1"
thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
stop-words = { version = "0.10.0", optional = true }
turso = "0.6.1"
tantivy = "0.22"
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros"] }
async-trait = "0.1"
uuid = { version = "1.7", features = ["v7"] }
regex = "1"
toml = "0.8"
rayon = { version = "1", optional = true }
reqwest = { version = "0.13", default-features = false, features = ["blocking", "json"], optional = true }
fastembed = { version = "5", optional = true }

[dev-dependencies]
tempfile = "3"
criterion = "0.5"

[[bench]]
name = "analysis"
harness = false