[package]
name = "raphtory-api"
description = "Raphtory common interface and APIs"
version.workspace = true
documentation.workspace = true
repository.workspace = true
license.workspace = true
readme.workspace = true
homepage.workspace = true
keywords.workspace = true
authors.workspace = true
rust-version.workspace = true
edition.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, optional = true }
bigdecimal = { workspace = true, features = ["string-only"] }
thiserror = { workspace = true }
bytemuck = { workspace = true }
chrono.workspace = true
dashmap = { workspace = true }
derive_more = { workspace = true, features = ["from"] }
rustc-hash = { workspace = true }
lock_api = { workspace = true }
parking_lot = { workspace = true }
pyo3 = { workspace = true, optional = true }
pyo3-arrow = { workspace = true, optional = true }
numpy = { workspace = true, optional = true }
rayon = { workspace = true }
rand = { workspace = true }
num-traits = { workspace = true }
twox-hash.workspace = true
tracing-subscriber = { workspace = true }
tracing = { workspace = true }
arrow-array = { workspace = true }
arrow-buffer = { workspace = true }
arrow-ipc = { workspace = true }
arrow-schema = { workspace = true }
serde_arrow = { workspace = true }
itertools = { workspace = true }
iter-enum = { workspace = true }
minijinja = { workspace = true, optional = true }
display-error-chain = { workspace = true, optional = true }
indexmap.workspace = true

[dev-dependencies]
proptest.workspace = true
serde_json.workspace = true

[features]
# Enables generating the pyo3 python bindings
python = [
    "dep:pyo3", "dep:pyo3-arrow", "dep:display-error-chain", "dep:numpy"
]

vectors = []
template = ["dep:minijinja"]
search = []
io = ["dep:serde_json"]
