[package]
name = "phoxal"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
publish = true
description = "Phoxal — production-oriented autonomous robot framework (engine, model, typed bus, contracts)."
documentation.workspace = true
homepage.workspace = true
repository.workspace = true
readme = "README.md"
keywords = ["robotics", "robot", "autonomy", "zenoh", "simulation"]
categories = ["science::robotics", "simulation"]

[lib]
name = "phoxal"
path = "src/lib.rs"

[features]
default = []
# Webots-backed validation harness. Off by default so platform runtime images
# do not carry scenario/test code; user runtimes that author scenarios enable it.
scenario = []

[dependencies]
arc-swap = "1.9.1"
anyhow = { workspace = true }
async-trait = { workspace = true }
clap = { workspace = true, features = ["derive", "env"] }
const_format = { workspace = true }
derive-new = { workspace = true }
derive_setters = { workspace = true }
dotenvy = { workspace = true }
nalgebra = { workspace = true }
rmp-serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_bytes = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "time", "signal", "sync", "fs"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
urdf-rs = { workspace = true }
zenoh = { workspace = true }

[dev-dependencies]
serial_test = { workspace = true }
tempfile = { workspace = true }
trybuild = { workspace = true }

[lints]
workspace = true
