[package]
name = "crossflow"
version = "0.0.2"
edition = "2021"
authors = ["Grey <mxgrey@intrinsic.ai>"]
license = "Apache-2.0"
description = "Reactive programming and workflow engine in bevy"
readme = "README.md"
repository = "https://github.com/open-rmf/crossflow"
keywords = ["reactive", "workflow", "behavior", "agent", "bevy"]
categories = [
"science::robotics",
"asynchronous",
"concurrency",
"game-development",
]
exclude = [
".github/*",
"biome.json",
"package.json",
"pnpm-lock.yaml",
"pnpm-workspace.yaml",
]
[workspace.dependencies]
axum = { version = "0.8.4", default-features = false }
bevy_app = "0.16"
bevy_derive = "0.16"
bevy_diagnostic = "0.16"
bevy_ecs = "0.16"
bevy_tasks = "0.16"
bevy_time = "0.16"
bevy_utils = "0.16"
clap = { version = "4.5.23", features = ["derive"] }
mime_guess = "2.0.5"
schemars = "0.9.0"
serde = "1.0.219"
serde_json = "1.0.140"
tokio = { version = "1.47.1", default-features = false }
tonic = "0.14"
prost = "0.14"
tonic-prost = "0.14"
tonic-prost-build = "0.14"
prost-build = "0.14"
prost-reflect = "0.16"
tracing = "0.1.41"
tracing-subscriber = "0.3.19"
futures = "0.3.31"
futures-util = "0.3.31"
uuid = { version = "1.13.1", default-features = false }
wasm-bindgen = "0.2.100"
zenoh = "1.5.1"
zenoh-ext = "1.5.1"
[dependencies]
crossflow_derive = { path = "macros", version = "0.0.2" }
bevy_ecs = { workspace = true }
bevy_utils = { workspace = true }
bevy_derive = { workspace = true }
bevy_diagnostic = { workspace = true }
bevy_app = { workspace = true }
async-task = { version = "4.7.1", optional = true }
bevy_tasks = { workspace = true, features = ["multi_threaded"] }
itertools = "0.13"
smallvec = { version = "1.13", features = ["serde"] }
tokio = { workspace = true, features = ["sync"] }
futures = { workspace = true }
backtrace = "0.3"
anyhow = "1.0"
thiserror = "1.0"
bevy_time = { workspace = true }
schemars = { workspace = true, optional = true }
serde = { workspace = true, optional = true, features = ["derive", "rc"] }
serde_json = { workspace = true, optional = true }
cel-interpreter = { version = "0.9.0", features = ["json"], optional = true }
tonic = { workspace = true, optional = true }
prost = { workspace = true, optional = true }
tonic-prost = { workspace = true, optional = true }
prost-reflect = { workspace = true, features = ["serde"], optional = true }
http = { version = "1.3", optional = true }
futures-lite = { version = "2.6", features = ["std", "race"], optional = true }
async-std = { version = "1.12", optional = true}
zenoh = { workspace = true, features = ["unstable"], optional = true }
zenoh-ext = { workspace = true, features = ["unstable"], optional = true }
tracing = { workspace = true }
strum = { version = "0.26.3", optional = true, features = ["derive"] }
semver = { version = "1.0.24", optional = true }
variadics_please = "1.1"
[target.wasm32-unknown-unknown.dependencies]
uuid = { workspace = true, default-features = false, features = ["js"] }
getrandom = { version = "0.3.3", features = ["wasm_js"] }
[features]
single_threaded_async = ["dep:async-task"]
diagram = [
"dep:cel-interpreter",
"dep:schemars",
"dep:semver",
"dep:serde",
"dep:serde_json",
"dep:strum",
]
trace = ["diagram"]
grpc = [
"dep:tonic",
"dep:prost",
"dep:tonic-prost",
"dep:tonic-prost-build",
"dep:prost-reflect",
"tokio/rt-multi-thread",
"dep:http",
"dep:futures-lite",
"dep:async-std",
]
zenoh = [
"dep:zenoh",
"dep:zenoh-ext",
"dep:prost-reflect",
"dep:futures-lite",
"dep:tonic-prost-build",
]
maximal = [
"diagram",
"trace",
"grpc",
"zenoh",
]
[dev-dependencies]
async-std = { version = "1.12" }
test-log = { version = "0.2.16", features = [
"trace",
], default-features = false }
[workspace]
members = [
"examples/diagram/calculator",
"examples/zenoh-examples",
"diagram-editor",
"diagram-editor/wasm",
"examples/diagram/calculator_wasm",
"examples/diagram/calculator_ops_catalog",
"examples/native"
]
[[bin]]
name = "generate_schema"
path = "src/diagram/generate_schema.rs"
required-features = ["diagram"]
doc = false
[build-dependencies]
tonic-prost-build = { workspace = true, optional = true }