[package]
edition = "2021"
name = "graphrag-core"
version = "0.1.0"
authors = ["GraphRAG-RS Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core portable library for GraphRAG - works on native and WASM"
readme = "README.md"
keywords = [
"graphrag",
"knowledge-graph",
"rag",
"llm",
"ai",
]
categories = [
"algorithms",
"science",
"text-processing",
]
license = "MIT"
repository = "https://github.com/yourusername/graphrag-rs"
[features]
api = [
"axum",
"tower",
"tower-http",
"async",
]
async = [
"tokio",
"futures",
"tracing",
]
async-traits = []
basic-retrieval = []
benchmarking = []
caching = [
"moka",
"tracing",
]
code-chunking = [
"tree-sitter",
"tree-sitter-rust",
]
corpus-processing = [
"tracing",
"async",
]
cross-encoder = []
cuda = [
"neural-embeddings",
"candle-core/cuda",
]
default = [
"memory-storage",
"basic-retrieval",
"parallel-processing",
"async",
"ureq",
]
e2graphrag = ["lightrag"]
function-calling = []
graph-retrieval = []
huggingface-hub = [
"hf-hub",
"dirs",
]
hybrid-retrieval = [
"basic-retrieval",
"graph-retrieval",
]
incremental = [
"parking_lot",
"dashmap",
]
json5-support = [
"json5",
"jsonschema",
]
lazygraphrag = [
"text-splitter",
"lightrag",
]
leiden = []
lightrag = []
memory-storage = []
metal = [
"neural-embeddings",
"candle-core/metal",
]
monitoring = []
neural-embeddings = [
"dirs",
"candle-core",
"candle-nn",
"candle-transformers",
]
ollama = [
"ollama-rs",
"async",
]
pagerank = [
"sprs",
"nalgebra",
"parking_lot",
"lru",
]
parallel-processing = [
"rayon",
"num_cpus",
]
persistent-storage = [
"arrow",
"parquet",
]
redis_storage = [
"redis",
"async",
"bincode",
]
rograg = [
"derive_more",
"strum",
"itertools",
"tap",
]
serde_json = []
tobugraph = []
toml-support = []
tracing = [
"dep:tracing",
"tracing-subscriber",
]
ureq = ["dep:ureq"]
vector-hnsw = ["instant-distance"]
wasm = [
"wasm-bindgen",
"web-sys",
"js-sys",
"serde-wasm-bindgen",
"getrandom",
]
yaml-support = ["serde_yaml"]
[lib]
name = "graphrag_core"
crate-type = [
"rlib",
"cdylib",
]
path = "src/lib.rs"
[[example]]
name = "advanced_nlp_demo"
path = "examples/advanced_nlp_demo.rs"
[[example]]
name = "complete_zero_cost_graphrag_demo"
path = "examples/complete_zero_cost_graphrag_demo.rs"
[[example]]
name = "document_enrichment_demo"
path = "examples/document_enrichment_demo.rs"
[[example]]
name = "embeddings_demo"
path = "examples/embeddings_demo.rs"
[[example]]
name = "embeddings_from_config"
path = "examples/embeddings_from_config.rs"
[[example]]
name = "hierarchical_graphrag_demo"
path = "examples/hierarchical_graphrag_demo.rs"
[[example]]
name = "llm_evaluation_demo"
path = "examples/llm_evaluation_demo.rs"
[[example]]
name = "symposium_graphrag_rs_philosophy"
path = "examples/symposium_graphrag_rs_philosophy.rs"
[[example]]
name = "symposium_trait_based_chunking"
path = "examples/symposium_trait_based_chunking.rs"
[[example]]
name = "symposium_with_llm_query"
path = "examples/symposium_with_llm_query.rs"
[[example]]
name = "symposium_zero_cost_query"
path = "examples/symposium_zero_cost_query.rs"
[[example]]
name = "tom_sawyer_workspace"
path = "examples/tom_sawyer_workspace.rs"
[[example]]
name = "workspace_demo"
path = "examples/workspace_demo.rs"
[[test]]
name = "text_pipeline_fixtures"
path = "tests/text_pipeline_fixtures.rs"
[dependencies.arrow]
version = "52"
features = ["ipc"]
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.7"
features = ["macros"]
optional = true
[dependencies.bincode]
version = "1.3"
optional = true
[dependencies.candle-core]
version = "0.8"
optional = true
default-features = false
[dependencies.candle-nn]
version = "0.8"
optional = true
default-features = false
[dependencies.candle-transformers]
version = "0.8"
optional = true
default-features = false
[dependencies.chrono]
version = "0.4.38"
features = [
"serde",
"clock",
"std",
]
default-features = false
[dependencies.csv]
version = "1.3"
[dependencies.dashmap]
version = "5.5"
optional = true
[dependencies.derive_more]
version = "0.99"
optional = true
[dependencies.dirs]
version = "5.0"
optional = true
[dependencies.flate2]
version = "1.0"
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.getrandom]
version = "0.2"
features = ["js"]
optional = true
[dependencies.hf-hub]
version = "0.3"
features = [
"tokio",
"online",
]
optional = true
default-features = false
[dependencies.indexmap]
version = "2.0"
features = ["serde"]
[dependencies.indicatif]
version = "0.17"
[dependencies.instant-distance]
version = "0.6"
optional = true
[dependencies.itertools]
version = "0.12"
optional = true
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.json]
version = "0.12"
[dependencies.json5]
version = "0.4"
optional = true
[dependencies.jsonfixer]
version = "0.1"
[dependencies.jsonschema]
version = "0.18"
optional = true
default-features = false
[dependencies.log]
version = "0.4"
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.moka]
version = "0.12"
features = ["future"]
optional = true
[dependencies.nalgebra]
version = "0.32"
optional = true
[dependencies.num_cpus]
version = "1.16"
optional = true
[dependencies.ollama-rs]
version = "0.2"
optional = true
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.parquet]
version = "52"
features = [
"arrow",
"snap",
]
optional = true
default-features = false
[dependencies.petgraph]
version = "0.6"
features = ["serde-1"]
default-features = false
[dependencies.rand]
version = "0.8"
features = ["getrandom"]
[dependencies.rayon]
version = "1.8"
optional = true
[dependencies.redis]
version = "0.27"
features = [
"tokio-comp",
"connection-manager",
]
optional = true
[dependencies.regex]
version = "1.0"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml]
version = "0.9"
optional = true
[dependencies.sha2]
version = "0.10"
[dependencies.sprs]
version = "0.11"
optional = true
[dependencies.strum]
version = "0.25"
features = ["derive"]
optional = true
[dependencies.tap]
version = "1.0"
optional = true
[dependencies.text-splitter]
version = "0.18"
optional = true
default-features = false
[dependencies.text_analysis]
version = "0.3"
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.0"
features = ["full"]
optional = true
[dependencies.toml]
version = "0.8"
[dependencies.tower]
version = "0.4"
features = ["full"]
optional = true
[dependencies.tower-http]
version = "0.5"
features = [
"fs",
"trace",
"cors",
]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
]
optional = true
[dependencies.tree-sitter]
version = "0.22"
optional = true
[dependencies.tree-sitter-rust]
version = "0.21"
optional = true
[dependencies.ureq]
version = "2.12"
features = ["json"]
optional = true
[dependencies.uuid]
version = "1.0"
features = [
"v4",
"serde",
"js",
]
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.web-sys]
version = "0.3"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.tempfile]
version = "3.8"
[target.'cfg(not(any(target_os = "macos", target_arch = "wasm32")))'.dependencies]
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = ["js"]
[target.'cfg(target_os = "macos")'.dependencies]