# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2021"
rust-version = "1.88"
name = "sqlite-graphrag"
version = "1.2.5"
build = false
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",
"*.bak",
"*.bak.*",
"*.7z",
"**/graphrag.sqlite",
"**/graphrag.sqlite-shm",
"**/graphrag.sqlite-wal",
"**/.enrich-queue.sqlite",
"**/.enrich-queue.sqlite-shm",
"**/.enrich-queue.sqlite-wal",
"graphrag.sqlite",
"graphrag.sqlite-shm",
"graphrag.sqlite-wal",
".enrich-queue.sqlite",
".enrich-queue.sqlite-shm",
".enrich-queue.sqlite-wal",
"*.sqlite",
"*.sqlite-shm",
"*.sqlite-wal",
"gaps.md",
"fuzz/",
"*.env",
"*.png",
"*.jpg",
"*.*.bak",
"*.*.bak.*",
"*.tmp",
"*.tmp.*",
"*.*.tmp",
"*.*.tmp.*",
"*.journal",
"*.journal.*",
"*.*.journal",
"*.*.journal.*",
"*.atomwrite_tmp",
"*.atomwrite_tmp.*",
"*atomwrite_tmp*",
"*_tmp*",
"*.atomwrite-*",
"*atomwrite-*",
"*.atom_*",
"*atom_*",
"*.atom-*",
"*atom-*",
"*._agent_tmp*",
"._agent_tmp*",
"*agent_tmp*",
"*.tmp_*",
"*.*.tmp_*",
"**/gaps.md",
"graphrag.sqlite.enrich-queue.sqlite",
"**/graphrag.sqlite.enrich-queue.sqlite",
".ingest-queue.sqlite-shm",
"**/.ingest-queue.sqlite-shm",
".ingest-queue.sqlite-wal",
"**/.ingest-queue.sqlite-wal",
".commit_hash",
"**/.commit_hash",
"base_*/**",
"docs_rules*/**",
".atomwrite_*/**",
".atomwrite-*/**",
".atomwrite*/**",
".tmp*/**",
".atom_*/**",
".atom-*/**",
".agent_*/**",
"_agent_*/**",
".staging*/**",
".tmp_*/**",
".setting.cyber/**",
"docs_rules_ingest/**",
".claude/**",
".skill-build/**",
".enrich-overnight/**",
".archive/**",
"uploads/**",
"docs_bugs/**",
]
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/HEADLESS_INVOCATION.md",
"docs/HEADLESS_INVOCATION.pt-BR.md",
"docs/TEST_PLAN.md",
"docs/TEST_PLAN.pt-BR.md",
"docs/DOCUMENTATION_FRAMEWORK.md",
"docs/decisions/INDEX.md",
"docs/decisions/adr-*.md",
"docs/decisions/adr-*.pt-BR.md",
"docs/schemas/*.schema.json",
"docs/schemas/README.md",
"skills/sqlite-graphrag-en/SKILL.md",
"skills/sqlite-graphrag-pt/SKILL.md",
"rust-toolchain.toml",
".cargo/config.toml",
"benches/**/*.rs",
"tests/**/*.rs",
"migrations/**/*",
"scripts/*.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "sqlite-graphrag"
description = "Persistent GraphRAG memory for Claude Code, Codex, Cursor, and 27 AI agents — one self-contained ~19 MiB Rust binary, zero daemon. Never re-explain your codebase again. Hybrid retrieval (FTS5 BM25 + cosine similarity + multi-hop graph traversal) surfaces the right memory in milliseconds. Embedding and entity enrichment run as parallel REST calls against your cloud LLM — no fragile headless subprocesses, no ONNX runtime, no model downloads. Soft-delete with full version history, transactional atomic writes, BLAKE3-tracked mutations. OAuth-only: raw API keys ABORT the spawn."
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",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/danilo-aguiar-br/sqlite-graphrag"
[features]
deadlock-detection = ["parking_lot/deadlock_detection"]
llm-only = []
slow-tests = []
[lib]
name = "sqlite_graphrag"
path = "src/lib.rs"
[[bin]]
name = "dump_schema"
path = "src/bin/dump_schema.rs"
[[bin]]
name = "sqlite-graphrag"
path = "src/main.rs"
[[test]]
name = "agent_surface_cli"
path = "tests/agent_surface_cli.rs"
[[test]]
name = "binary_size_documented_regression"
path = "tests/binary_size_documented_regression.rs"
[[test]]
name = "busy_policy_hermetic"
path = "tests/busy_policy_hermetic.rs"
[[test]]
name = "c_toolchain_gate"
path = "tests/c_toolchain_gate.rs"
[[test]]
name = "cli_db_flag_parity_regression"
path = "tests/cli_db_flag_parity_regression.rs"
[[test]]
name = "cli_db_noop_host_surfaces_regression"
path = "tests/cli_db_noop_host_surfaces_regression.rs"
[[test]]
name = "cli_integration"
path = "tests/cli_integration.rs"
[[test]]
name = "cli_low_memory"
path = "tests/cli_low_memory.rs"
[[test]]
name = "cold_lock_integration"
path = "tests/cold_lock_integration.rs"
[[test]]
name = "completions"
path = "tests/completions.rs"
[[test]]
name = "concurrency_adaptive"
path = "tests/concurrency_adaptive.rs"
[[test]]
name = "concurrency_hardened"
path = "tests/concurrency_hardened.rs"
[[test]]
name = "concurrency_limit_integration"
path = "tests/concurrency_limit_integration.rs"
[[test]]
name = "config_channel_reachability_gate"
path = "tests/config_channel_reachability_gate.rs"
[[test]]
name = "config_value_validation"
path = "tests/config_value_validation.rs"
[[test]]
name = "cookbook_recipes_basics"
path = "tests/cookbook_recipes_basics.rs"
[[test]]
name = "cookbook_recipes_ops"
path = "tests/cookbook_recipes_ops.rs"
[[test]]
name = "deep_research_nested_runtime_regression"
path = "tests/deep_research_nested_runtime_regression.rs"
[[test]]
name = "doc_contract_crud"
path = "tests/doc_contract_crud.rs"
[[test]]
name = "doc_contract_enrich"
path = "tests/doc_contract_enrich.rs"
[[test]]
name = "doc_contract_entities"
path = "tests/doc_contract_entities.rs"
[[test]]
name = "doc_contract_maintenance"
path = "tests/doc_contract_maintenance.rs"
[[test]]
name = "doc_contract_search_graph"
path = "tests/doc_contract_search_graph.rs"
[[test]]
name = "docs_command_coverage"
path = "tests/docs_command_coverage.rs"
[[test]]
name = "docs_consistency"
path = "tests/docs_consistency.rs"
[[test]]
name = "docs_declared_facts_gate"
path = "tests/docs_declared_facts_gate.rs"
[[test]]
name = "docs_env_channel_guard"
path = "tests/docs_env_channel_guard.rs"
[[test]]
name = "docs_language_parity"
path = "tests/docs_language_parity.rs"
[[test]]
name = "docs_xdg_coverage"
path = "tests/docs_xdg_coverage.rs"
[[test]]
name = "embedder"
path = "tests/embedder.rs"
[[test]]
name = "embedding_error_kind_integration"
path = "tests/embedding_error_kind_integration.rs"
[[test]]
name = "enrich_after_defaults"
path = "tests/enrich_after_defaults.rs"
[[test]]
name = "enrich_queue_db_isolation"
path = "tests/enrich_queue_db_isolation.rs"
[[test]]
name = "entity_validation_integration"
path = "tests/entity_validation_integration.rs"
[[test]]
name = "env_channel_guard"
path = "tests/env_channel_guard.rs"
[[test]]
name = "exit_codes_integration"
path = "tests/exit_codes_integration.rs"
[[test]]
name = "extract_backend"
path = "tests/extract_backend.rs"
[[test]]
name = "fail_on_degraded_gate"
path = "tests/fail_on_degraded_gate.rs"
[[test]]
name = "file_size_ceiling_gate"
path = "tests/file_size_ceiling_gate.rs"
[[test]]
name = "fusion_determinism_integration"
path = "tests/fusion_determinism_integration.rs"
[[test]]
name = "gaps_caveat_gate"
path = "tests/gaps_caveat_gate.rs"
[[test]]
name = "gliner_variant_removed_regression"
path = "tests/gliner_variant_removed_regression.rs"
[[test]]
name = "graph_traverse_regression"
path = "tests/graph_traverse_regression.rs"
[[test]]
name = "health_namespace_regression"
path = "tests/health_namespace_regression.rs"
[[test]]
name = "health_nonexistent_db_regression"
path = "tests/health_nonexistent_db_regression.rs"
[[test]]
name = "health_schema_drift_regression"
path = "tests/health_schema_drift_regression.rs"
[[test]]
name = "help_no_product_env"
path = "tests/help_no_product_env.rs"
[[test]]
name = "i18n_bilingual_integration"
path = "tests/i18n_bilingual_integration.rs"
[[test]]
name = "inert_flag_guard"
path = "tests/inert_flag_guard.rs"
[[test]]
name = "ingest_auto_describe_regression"
path = "tests/ingest_auto_describe_regression.rs"
[[test]]
name = "ingest_integration"
path = "tests/ingest_integration.rs"
[[test]]
name = "ingest_name_collision_regression"
path = "tests/ingest_name_collision_regression.rs"
[[test]]
name = "ingest_ndjson_contract"
path = "tests/ingest_ndjson_contract.rs"
[[test]]
name = "installed_binary_smoke_crud"
path = "tests/installed_binary_smoke_crud.rs"
[[test]]
name = "installed_binary_smoke_graph"
path = "tests/installed_binary_smoke_graph.rs"
[[test]]
name = "installed_binary_smoke_maintenance"
path = "tests/installed_binary_smoke_maintenance.rs"
[[test]]
name = "integration_bootstrap"
path = "tests/integration_bootstrap.rs"
[[test]]
name = "integration_graph_export"
path = "tests/integration_graph_export.rs"
[[test]]
name = "integration_graph_links"
path = "tests/integration_graph_links.rs"
[[test]]
name = "integration_memory_lifecycle"
path = "tests/integration_memory_lifecycle.rs"
[[test]]
name = "integration_memory_read"
path = "tests/integration_memory_read.rs"
[[test]]
name = "integration_memory_write"
path = "tests/integration_memory_write.rs"
[[test]]
name = "llm_backend_choice"
path = "tests/llm_backend_choice.rs"
[[test]]
name = "llm_host_slots"
path = "tests/llm_host_slots.rs"
[[test]]
name = "lock_integration"
path = "tests/lock_integration.rs"
[[test]]
name = "loom_lock_slots"
path = "tests/loom_lock_slots.rs"
[[test]]
name = "migrate_dry_run_regression"
path = "tests/migrate_dry_run_regression.rs"
[[test]]
name = "no_ci_workflows_gate"
path = "tests/no_ci_workflows_gate.rs"
[[test]]
name = "no_input_exit_contract"
path = "tests/no_input_exit_contract.rs"
[[test]]
name = "openrouter_chat_real"
path = "tests/openrouter_chat_real.rs"
[[test]]
name = "openrouter_embedding"
path = "tests/openrouter_embedding.rs"
[[test]]
name = "openrouter_flags"
path = "tests/openrouter_flags.rs"
[[test]]
name = "openrouter_live_concurrency"
path = "tests/openrouter_live_concurrency.rs"
[[test]]
name = "pending_memories_staging"
path = "tests/pending_memories_staging.rs"
[[test]]
name = "prd_graph_surface"
path = "tests/prd_graph_surface.rs"
[[test]]
name = "prd_maintenance"
path = "tests/prd_maintenance.rs"
[[test]]
name = "prd_memory_lifecycle"
path = "tests/prd_memory_lifecycle.rs"
[[test]]
name = "property_based"
path = "tests/property_based.rs"
[[test]]
name = "prune_dead_entity_orphans_integration"
path = "tests/prune_dead_entity_orphans_integration.rs"
[[test]]
name = "readme_examples_executable"
path = "tests/readme_examples_executable.rs"
[[test]]
name = "recall_all_namespaces_integration"
path = "tests/recall_all_namespaces_integration.rs"
[[test]]
name = "recall_distance_integration"
path = "tests/recall_distance_integration.rs"
[[test]]
name = "recall_integration"
path = "tests/recall_integration.rs"
[[test]]
name = "reembed_dry_run_isolated"
path = "tests/reembed_dry_run_isolated.rs"
[[test]]
name = "reembed_entities_integration"
path = "tests/reembed_entities_integration.rs"
[[test]]
name = "regression_positional_args"
path = "tests/regression_positional_args.rs"
[[test]]
name = "regression_v2_0_4"
path = "tests/regression_v2_0_4.rs"
[[test]]
name = "schema_contract_agent_surface"
path = "tests/schema_contract_agent_surface.rs"
[[test]]
name = "schema_contract_crud"
path = "tests/schema_contract_crud.rs"
[[test]]
name = "schema_contract_entities"
path = "tests/schema_contract_entities.rs"
[[test]]
name = "schema_contract_graph"
path = "tests/schema_contract_graph.rs"
[[test]]
name = "schema_contract_maintenance"
path = "tests/schema_contract_maintenance.rs"
[[test]]
name = "schema_memory_types_integration"
path = "tests/schema_memory_types_integration.rs"
[[test]]
name = "schema_migrate_repair_integration"
path = "tests/schema_migrate_repair_integration.rs"
[[test]]
name = "schema_shape_integration"
path = "tests/schema_shape_integration.rs"
[[test]]
name = "security_hardening"
path = "tests/security_hardening.rs"
[[test]]
name = "shutdown_envelope_regression"
path = "tests/shutdown_envelope_regression.rs"
[[test]]
name = "signal_handling_integration"
path = "tests/signal_handling_integration.rs"
[[test]]
name = "skills_surface_gate"
path = "tests/skills_surface_gate.rs"
[[test]]
name = "slots_no_println_integration"
path = "tests/slots_no_println_integration.rs"
[[test]]
name = "stderr_capture_fallback"
path = "tests/stderr_capture_fallback.rs"
[[test]]
name = "terminal_compile_windows"
path = "tests/terminal_compile_windows.rs"
[[test]]
name = "tracing_validation"
path = "tests/tracing_validation.rs"
[[test]]
name = "v008_entity_types_e2e"
path = "tests/v008_entity_types_e2e.rs"
[[test]]
name = "v1044_features"
path = "tests/v1044_features.rs"
[[test]]
name = "v1045_features"
path = "tests/v1045_features.rs"
[[test]]
name = "v1063_features"
path = "tests/v1063_features.rs"
[[test]]
name = "v1105_danilo_bugs_regression"
path = "tests/v1105_danilo_bugs_regression.rs"
[[test]]
name = "v1106_entity_connect_scan_regression"
path = "tests/v1106_entity_connect_scan_regression.rs"
[[test]]
name = "v2_breaking_integration"
path = "tests/v2_breaking_integration.rs"
[[test]]
name = "vacuum_integration"
path = "tests/vacuum_integration.rs"
[[test]]
name = "wal_auto_init_regression"
path = "tests/wal_auto_init_regression.rs"
[[test]]
name = "xdg_isolation_guard"
path = "tests/xdg_isolation_guard.rs"
[[bench]]
name = "cli_benchmarks"
path = "benches/cli_benchmarks.rs"
harness = false
[[bench]]
name = "regression_baseline"
path = "benches/regression_baseline.rs"
harness = false
[[bench]]
name = "retrieval_bench"
path = "benches/retrieval_bench.rs"
harness = false
[dependencies.ahash]
version = "0.8"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.blake3]
version = "1"
features = [
"std",
"pure",
]
default-features = false
[dependencies.chrono]
version = "0.4"
features = [
"clock",
"serde",
]
default-features = false
[dependencies.chrono-tz]
version = "0.10"
[dependencies.clap]
version = "4.6"
features = ["derive"]
[dependencies.clap_complete]
version = "4"
[dependencies.constant_time_eq]
version = "=0.4.2"
[dependencies.ctrlc]
version = "3.4"
features = ["termination"]
[dependencies.directories]
version = "5"
[dependencies.fastrand]
version = "2"
[dependencies.fs4]
version = "0.9"
features = ["sync"]
[dependencies.interprocess]
version = "2"
[dependencies.libc]
version = "0.2"
[dependencies.llm_json]
version = "1.0.3"
[dependencies.parking_lot]
version = "0.12"
[dependencies.rapidfuzz]
version = "0.5"
[dependencies.rayon]
version = "1.10"
[dependencies.refinery]
version = "0.9"
features = ["rusqlite"]
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"json",
]
default-features = false
[dependencies.rusqlite]
version = "0.37"
features = [
"bundled",
"blob",
"load_extension",
"functions",
"trace",
"backup",
]
[dependencies.schemars]
version = "0.8"
[dependencies.secrecy]
version = "0.10"
features = ["serde"]
[dependencies.semver]
version = "1"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.signal-hook]
version = "0.3"
features = ["iterator"]
default-features = false
[dependencies.siphasher]
version = "1"
[dependencies.sys-locale]
version = "0.3"
[dependencies.sysinfo]
version = "0.32"
features = ["system"]
default-features = false
[dependencies.tempfile]
version = "3"
[dependencies.text-splitter]
version = "0.30.1"
features = ["markdown"]
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tiktoken-rs]
version = "0.12"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"sync",
"time",
"io-util",
"macros",
"process",
]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
[dependencies.tracing-appender]
version = "0.2.5"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"json",
"env-filter",
"fmt",
"ansi",
"registry",
"tracing-log",
]
[dependencies.unicode-normalization]
version = "0.1.25"
[dependencies.wait-timeout]
version = "0.2"
[dependencies.which]
version = "7"
[dependencies.zeroize]
version = "1"
[dev-dependencies.assert_cmd]
version = "2"
[dev-dependencies.blake3]
version = "1"
features = [
"std",
"pure",
]
default-features = false
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1"
features = ["json"]
[dev-dependencies.jsonschema]
version = "0.29"
[dev-dependencies.libc]
version = "0.2"
[dev-dependencies.mockall]
version = "0.13"
[dev-dependencies.predicates]
version = "3"
[dev-dependencies.proptest]
version = "1"
features = ["std"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing-test]
version = "0.2"
[dev-dependencies.wiremock]
version = "0.6"
[target."cfg(sqlite_graphrag_loom)".dev-dependencies.loom]
version = "0.7"
[target."cfg(windows)".dependencies.windows-sys]
version = "=0.59.0"
features = [
"Win32_System_Console",
"Win32_System_Threading",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Foundation",
]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(sqlite_graphrag_loom)"]
[profile.bench]
debug = 1
inherits = "release"
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 2
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
panic = "abort"
overflow-checks = false
incremental = false
strip = true
[profile.release.package."*"]
opt-level = 3