[package]
name = "aprender-graph"
version.workspace = true
edition = "2021"
authors = ["Pragmatic AI Labs <info@paiml.com>"]
license = "MIT"
description = "GPU-first embedded graph database for code analysis (call graphs, dependencies, AST traversals)"
repository = "https://github.com/paiml/trueno-graph"
keywords = ["graph", "gpu", "database", "csr", "pagerank"]
categories = ["database", "algorithms", "data-structures"]
rust-version = "1.75"
readme = "README.md"
[lib]
name = "trueno_graph"
[dependencies]
arrow = { version = "54", default-features = false, optional = true }
parquet = { version = "54", optional = true }
tokio = { version = "1", features = ["rt", "fs", "sync", "macros"] }
anyhow = "1"
thiserror = "2"
aprender = { path = "../aprender-core", version = "0.29.0", package = "aprender-core" }
trueno = "0.17"
trueno-db = "0.3.17"
wgpu = { version = "22", optional = true, features = ["wgsl"] }
bytemuck = { version = "1", optional = true, features = ["derive"] }
futures-intrusive = { version = "0.5", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
tokio-test = "0.4"
proptest = "1.9"
serial_test = "3"
tempfile = "3"
criterion = { version = "0.6", features = ["html_reports"] }
[features]
default = ["storage"]
storage = ["dep:arrow", "dep:parquet"]
gpu = ["wgpu", "bytemuck", "futures-intrusive"]
[[bench]]
name = "graph_algorithms"
harness = false
[[bench]]
name = "gpu_algorithms"
harness = false
required-features = ["gpu"]
[[example]]
name = "paging_demo"
required-features = ["gpu"]
[[bench]]
name = "phase4_algorithms"
harness = false
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
strip = true
panic = "abort"
[profile.bench]
inherits = "release"
debug = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--generate-link-to-definition"]
[package.metadata.release]
shared-version = true
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "## \\[Unreleased\\]"
replace = "## [{{version}}] - {{date}}"
[profile.dev]
panic = "abort"