[package]
name = "weavatrix-rust"
version = "2.1.1"
edition = "2024"
rust-version = "1.89"
description = "Protocol-independent Rust repository intelligence: typed evidence graphs for impact, architecture, APIs, Git, search, and memory"
license = "MIT"
authors = ["Sergii Ziborov <sergii.ziborov@gmail.com>"]
homepage = "https://weavatrix.com"
repository = "https://github.com/sergii-ziborov/weavatrix-rust"
documentation = "https://docs.rs/weavatrix-rust"
readme = "README.md"
keywords = ["code-graph", "static-analysis", "repository", "architecture", "impact"]
categories = ["development-tools", "parser-implementations"]
[package.metadata.docs.rs]
all-features = true
[lib]
name = "weavatrix_rust"
path = "src/lib.rs"
[[bin]]
name = "weavatrix-rust"
path = "src/main.rs"
[[bench]]
name = "repository_suite"
harness = false
[features]
default = ["full", "lang-rust"]
full = ["clone", "git", "memory", "search", "semantic", "vector"]
clone = ["dep:weavatrix-clone"]
git = ["dep:weavatrix-git"]
lang-rust = ["dep:proc-macro2", "dep:syn"]
memory = ["dep:weavatrix-memory"]
search = ["dep:weavatrix-search"]
semantic = ["dep:weavatrix-semantic"]
vector = ["dep:weavatrix-search-vector"]
[dependencies]
proc-macro2 = { version = "1.0.107", default-features = false, features = ["span-locations"], optional = true }
serde = { version = "1.0.229", features = ["derive"] }
blazingly-json = "0.1.0"
syn = { version = "3.0.3", default-features = false, features = ["clone-impls", "full", "parsing", "printing", "visit"], optional = true }
weavatrix-clone = { version = "0.1.3", optional = true }
weavatrix-git = { version = "0.3.1", optional = true }
weavatrix-graph = "0.6.3"
weavatrix-parse = "0.3.0"
weavatrix-memory = { version = "0.3.2", optional = true }
weavatrix-scan = "0.4.6"
weavatrix-search = { version = "0.3.1", optional = true, default-features = false }
weavatrix-search-vector = { version = "0.3.1", optional = true }
weavatrix-semantic = { version = "0.2.2", optional = true, features = ["vector-search"] }
[dev-dependencies]
[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
strip = "symbols"
[lints.rust]
unsafe_code = "forbid"
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }