[package]
name = "portgraph"
version = "0.13.2"
license = "Apache-2.0"

readme = "README.md"
documentation = "https://docs.rs/portgraph/"
repository = "https://github.com/CQCL/portgraph"

description = "Data structure library for directed graphs with first-level ports."
keywords = ["data-structure", "graph"]
categories = ["data-structures"]

edition = "2021"
rust-version = "1.75"

[lib]
bench = false
name = "portgraph"
path = "src/lib.rs"

[dependencies]
thiserror = "2.0.3"
pyo3 = { version = "0.23", optional = true, features = ["multiple-pymethods"] }
bitvec = "1.0.1"
serde = { version = "1.0.152", features = ["derive"], optional = true }
proptest = { version = "1.1.0", optional = true }
rand = { version = "0.9.0", optional = true }
petgraph = { version = "0.7.0", optional = true }
delegate = "0.13.0"
itertools = "0.14.0"

[features]
pyo3 = ["dep:pyo3"]
serde = ["dep:serde", "bitvec/serde"]
proptest = ["dep:proptest", "dep:rand"]
petgraph = ["dep:petgraph"]

[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
iai-callgrind = "0.14.0"
rmp-serde = "1.1.1"
rstest = "0.24.0"
itertools = "0.14.0"
insta = "1.39.0"

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

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

[profile.bench]
debug = true