[package]
name = "lattix"
version = "0.1.1"
edition = "2021"
rust-version = "1.80"
license = "MIT OR Apache-2.0"
authors = ["Arc <attobop@gmail.com>"]
description = "Graph/KG substrate: triples + PageRank + random walks"
repository = "https://github.com/arclabs561/lattix"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
petgraph = { version = "0.6", features = ["serde-1"] }
thiserror = "2.0"
rio_api = { version = "0.8.4", features = ["generalized"], optional = true }
rio_turtle = { version = "0.8.4", features = ["generalized"], optional = true }
rand = { version = "0.9", optional = true }
rand_xorshift = { version = "0.4.0", optional = true }
rand_distr = { version = "0.5", optional = true }
rayon = { version = "1.10", optional = true }
csv = { version = "1.4.0", optional = true }
oxiri = { version = "0.2.11", features = ["serde"], optional = true }
bincode = { version = "1.3.3", optional = true }
sophia_api = { version = "0.8", optional = true }

[dev-dependencies]
proptest = "1.9"
criterion = "0.7"

[features]
# Note: "binary" removed from default - bincode is unmaintained (RUSTSEC-2025-0141)
# Use serde_json or postcard for serialization instead
default = ["formats", "algo"]
formats = ["dep:rio_api", "dep:rio_turtle", "dep:oxiri", "dep:csv"]
algo = ["dep:rand", "dep:rand_xorshift", "dep:rand_distr", "dep:rayon"]
binary = ["dep:bincode"]  # Legacy, unmaintained - prefer serde_json
sophia = ["dep:sophia_api"]

[[bench]]
name = "random_walk_bench"
harness = false

[lints]
workspace = true
