[package]
name = "context-forge"
version = "0.8.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