[package]
name = "gryf"
version = "0.2.1"
authors = ["Petr Nevyhoštěný"]
edition = "2024"
license = "MIT OR Unlicense"
description = "Graph data structure library with focus on convenience, versatility, correctness and performance."
homepage = "https://github.com/pnevyk/gryf"
documentation = "https://docs.rs/gryf"
repository = "https://github.com/pnevyk/gryf"
readme = "../README.md"
keywords = ["graph", "algorithms", "data-structures"]
categories = ["algorithms", "data-structures"]

[dependencies]
bitvec = "1.0.1"
fixedbitset = "0.5.7"
rustc-hash = "2.1.1"
thiserror = "2.0.16"

# gryf-derive is not optional, because we use it in gryf itself. This might change in the future.
gryf-derive = { version = "=0.2.1", path = "../gryf-derive" }

arbitrary = { version = "1.2.3", features = ["derive"], optional = true }
proptest = { version = "1.1.0", optional = true }
indexmap = "2.11.0"

[dev-dependencies]
# Remove once https://github.com/rust-lang/rust/issues/82775 is stabilized
assert_matches = "1.5.0"
divan = "0.1.14"
fastrand = "2.1.0"
# https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
gryf = { path = ".", features = ["proptest", "arbitrary"] }
petgraph = "0.8.2"

[features]
default = []
arbitrary = ["dep:arbitrary"]
proptest = ["dep:proptest"]
derive = []

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

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

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