[package]
name = "sqlite-graphrag"
version = "1.0.78"
edition = "2021"
rust-version = "1.88"
description = "Persistent GraphRAG memory for Claude Code, Codex, Cursor, and 24+ AI agents in a single 6 MB Rust binary. LLM-only and one-shot in v1.0.78: every `remember` / `ingest` spawns a headless claude code or codex subprocess (OAuth, no MCP, no hooks). No daemon. No ONNX runtime. No model download. Graph-native retrieval with FTS5 + cosine + multi-hop traversal. OAuth-only enforcement: API keys ABORT the spawn."
license = "Apache-2.0 OR MIT"
repository = "https://github.com/daniloaguiarbr/sqlite-graphrag"
homepage = "https://docs.rs/sqlite-graphrag"
documentation = "https://docs.rs/sqlite-graphrag"
readme = "README.md"
keywords = ["graphrag", "sqlite", "llm", "embeddings", "memory"]
categories = ["command-line-utilities", "database", "api-bindings"]
default-run = "sqlite-graphrag"
include = [
"src/**/*.rs",
"Cargo.toml",
"Cargo.lock",
"README.md",
"README.pt-BR.md",
"CHANGELOG.md",
"CHANGELOG.pt-BR.md",
"LICENSE",
"LICENSE-MIT",
"LICENSE-APACHE",
"CODE_OF_CONDUCT.md",
"CODE_OF_CONDUCT.pt-BR.md",
"CONTRIBUTING.md",
"CONTRIBUTING.pt-BR.md",
"SECURITY.md",
"SECURITY.pt-BR.md",
"INTEGRATIONS.md",
"INTEGRATIONS.pt-BR.md",
"llms.txt",
"llms-full.txt",
"llms.pt-BR.txt",
"docs/AGENTS.md",
"docs/AGENTS.pt-BR.md",
"docs/COOKBOOK.md",
"docs/COOKBOOK.pt-BR.md",
"docs/HOW_TO_USE.md",
"docs/HOW_TO_USE.pt-BR.md",
"docs/MIGRATION.md",
"docs/MIGRATION.pt-BR.md",
"docs/TESTING.md",
"docs/TESTING.pt-BR.md",
"docs/CROSS_PLATFORM.md",
"docs/CROSS_PLATFORM.pt-BR.md",
"docs/DOCUMENTATION_FRAMEWORK.md",
"docs/decisions/adr-*.md",
"docs/decisions/adr-*.pt-BR.md",
"docs/schemas/*.schema.json",
"docs/schemas/README.md",
"skill/sqlite-graphrag-en/SKILL.md",
"skill/sqlite-graphrag-pt/SKILL.md",
"rust-toolchain.toml",
".cargo/config.toml",
"benches/**/*.rs",
"tests/**/*.rs",
"migrations/**/*",
"scripts/**/*",
]
exclude = [
".serena/",
".claude/",
".vscode/",
".idea/",
"target/",
"logs/",
"memory/",
"docs_rules/",
"docs_prd/",
"docs/CLAUDE.md",
"docs/CLAUDE.pt-BR.md",
"CLAUDE.md",
"AGENTS.md",
"MEMORY.md",
"ralph-loop.local.md",
"*.profraw",
"*.profdata",
"*.log",
"graphrag.sqlite",
"graphrag.sqlite-shm",
"graphrag.sqlite-wal",
"*.sqlite",
"*.sqlite-shm",
"*.sqlite-wal",
"gaps.md",
"fuzz/",
]
[[bin]]
name = "sqlite-graphrag"
path = "src/main.rs"
[[bench]]
name = "cli_benchmarks"
harness = false
[[bench]]
name = "regression_baseline"
harness = false
[[test]]
name = "loom_lock_slots"
path = "tests/loom_lock_slots.rs"
[dependencies]
async-trait = "0.1"
semver = { version = "1", features = ["serde"] }
ahash = "0.8"
mimalloc = { version = "0.1", default-features = false }
rusqlite = { version = "0.37", features = ["bundled", "blob", "load_extension", "functions", "trace", "backup"] }
clap = { version = "4.6", features = ["derive", "env"] }
clap_complete = "4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tracing = { version = "0.1", features = ["attributes"] }
tracing-subscriber = { version = "0.3", features = ["json", "env-filter", "fmt", "ansi", "registry", "tracing-log"] }
refinery = { version = "0.9", features = ["rusqlite"] }
siphasher = "1"
anyhow = "1"
thiserror = "2"
blake3 = "1"
directories = "5"
fastrand = "2"
fs4 = { version = "0.9", features = ["sync"] }
interprocess = "2"
regex = "1"
tokio = { version = "1", features = ["rt-multi-thread", "sync", "time", "io-util", "macros", "process"] }
tokio-util = { version = "0.7", features = ["rt"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
chrono-tz = "0.10"
sysinfo = { version = "0.32", default-features = false, features = ["system"] }
ctrlc = { version = "3.4", features = ["termination"] }
constant_time_eq = "=0.4.2"
parking_lot = "0.12"
libc = "0.2"
rayon = "1.10"
text-splitter = { version = "0.30.1", default-features = false, features = ["markdown"] }
unicode-normalization = "0.1.25"
tempfile = "3"
sys-locale = "0.3"
wait-timeout = "0.2"
which = "7"
fastembed = { version = "5.13.4", default-features = false, optional = true, features = ["hf-hub-rustls-tls", "ort-download-binaries-rustls-tls", "image-models"] }
ort = { version = "=2.0.0-rc.12", default-features = false, optional = true, features = ["std", "ndarray", "tracing", "download-binaries", "tls-rustls", "copy-dylibs"] }
ndarray = { version = "0.16", optional = true }
tokenizers = { version = "0.22", default-features = false, optional = true, features = ["onig"] }
huggingface-hub = { package = "hf-hub", version = "0.4", default-features = false, optional = true, features = ["ureq"] }
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "=0.59.0", features = ["Win32_System_Console"] }
[dev-dependencies]
assert_cmd = "2"
insta = { version = "1", features = ["json"] }
tracing-test = "0.2"
criterion = { version = "0.5", features = ["html_reports"] }
proptest = { version = "1", features = ["std"] }
tempfile = "3"
predicates = "3"
serde_json = "1"
serial_test = "3"
mockall = "0.13"
wiremock = "0.6"
libc = "0.2"
jsonschema = "0.29"
[target.'cfg(sqlite_graphrag_loom)'.dev-dependencies]
loom = "0.7"
[profile.release]
lto = "fat"
codegen-units = 1
strip = true
opt-level = 3
panic = "abort"
debug = false
overflow-checks = false
incremental = false
[profile.release.package."*"]
opt-level = 3
[profile.bench]
inherits = "release"
debug = 1
[features]
slow-tests = []
deadlock-detection = ["parking_lot/deadlock_detection"]
llm-only = []
embedding-legacy = ["dep:fastembed", "dep:ort", "dep:ndarray", "dep:tokenizers", "dep:huggingface-hub"]
ner-legacy = ["dep:ort", "dep:ndarray"]
full = ["embedding-legacy", "ner-legacy"]
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 2
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(sqlite_graphrag_loom)', 'cfg(sqlite_graphrag_miri)', 'cfg(feature, values("embedding-legacy"))'] }