[package]
name = "dora-runtime"
version.workspace = true
edition.workspace = true
documentation.workspace = true
description.workspace = true
license.workspace = true
repository.workspace = true

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

[dependencies]
dora-node-api = { workspace = true, default-features = false }
dora-operator-api-python = { workspace = true, optional = true }
dora-operator-api-types = { workspace = true }
dora-core = { workspace = true }
dora-tracing = { workspace = true, optional = true }
dora-metrics = { workspace = true, optional = true }
dora-message = { workspace = true }
eyre = "0.6.8"
futures = "0.3.21"
futures-concurrency = "7.1.0"
libloading = "0.7.3"
serde_yaml = { workspace = true }
tokio = { version = "1.24.2", features = ["full"] }
tokio-stream = "0.1.8"
# pyo3-abi3 flag allow simpler linking. See: https://pyo3.rs/v0.13.2/building_and_distribution.html
pyo3 = { workspace = true, features = ["eyre", "abi3-py37"], optional = true }
tracing = "0.1.36"
dora-download = { workspace = true }
flume = "0.10.14"
tracing-opentelemetry = { version = "0.18.0", optional = true }
pythonize = { workspace = true, optional = true }
arrow = { workspace = true, features = ["ffi"] }
aligned-vec = "0.5.0"

[features]
default = ["tracing", "metrics"]
tracing = ["dora-tracing"]
telemetry = ["tracing", "tracing-opentelemetry"]
metrics = ["dora-metrics"]
python = ["pyo3", "dora-operator-api-python", "pythonize", "arrow/pyarrow"]
