[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3
[profile.test]
opt-level = 0
[profile.test.package.sweet_test]
opt-level = 0
[workspace.package]
version = "0.0.5"
authors = ["Peter Hayman"]
edition = "2024"
description = "Tools for building reactive structures"
documentation = "https://docs.rs/beet"
readme = "README.md"
homepage = "https://docs.rs/beet"
repository = "https://github.com/mrchantey/beet"
license = "MIT OR Apache-2.0"
keywords = ["beet", "beetmash", "behavior", "game-ai", "robotics"]
categories = [
"science::robotics",
"game-development",
"simulation",
"wasm",
"embedded",
]
publish = false
[workspace]
resolver = "2"
members = [
"crates/beet_examples",
"crates/beet_flow",
"crates/beet_flow/macros",
"crates/beet_ml",
"crates/beet_router",
"crates/beet_router/parser",
"crates/beet_rsx",
"crates/beet_rsx/macros",
"crates/beet_rsx/parser",
"crates/beet_sim",
"crates/beet_spatial",
"crates/beet_site",
"crates/beet-cli",
]
[workspace.dependencies]
beet = { path = "", version = "0.0.5", default-features = false }
beet_spatial = { path = "crates/beet_spatial", version = "0.0.5", default-features = false }
beet_examples = { path = "crates/beet_examples", version = "0.0.5" }
beet_flow = { path = "crates/beet_flow", version = "0.0.5" }
beet_flow_macros = { path = "crates/beet_flow/macros", version = "0.0.5" }
beet_ml = { path = "crates/beet_ml", version = "0.0.5" }
beet_router = { path = "crates/beet_router", version = "0.0.5" }
beet_router_parser = { path = "crates/beet_router/parser", version = "0.0.5" }
beet_rsx = { path = "crates/beet_rsx", version = "0.0.5" }
beet_rsx_macros = { path = "crates/beet_rsx/macros", version = "0.0.5" }
beet_rsx_parser = { path = "crates/beet_rsx/parser", version = "0.0.5" }
beet_sim = { path = "crates/beet_sim", version = "0.0.5" }
sweet = { version = "0.3.0" }
bevy = { version = "0.15", default-features = false, features = ["bevy_color"] }
log = "0.4"
pretty_env_logger = "0.4"
console_log = { version = "1", features = ["color"] }
anyhow = "1"
thiserror = "1"
heck = "0.4"
once_cell = "1"
rapidhash = "1.3.0"
futures = "0.3"
flume = "0.11"
tokio = { version = "1", features = [
"macros",
"sync",
"rt",
"rt-multi-thread",
"time",
] }
syn = "2"
quote = "1"
proc-macro2 = "1"
prettyplease = "0.2"
strum = { version = "0.26", features = ["derive"] }
strum_macros = "0.26"
extend = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
ron = "0.8"
clap = "4"
http = "1"
reqwest = "0.12"
js-sys = "0.3"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
console_error_panic_hook = "0.1"
web-sys = "0.3"
[package]
name = "beet"
version.workspace = true
edition.workspace = true
description.workspace = true
documentation.workspace = true
readme.workspace = true
homepage.workspace = true
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true
include = ["CHANGELOG.md", "README.md", "/src", "/examples", "/scenes"]
[features]
default = ["flow"]
examples = ["bevy_default", "dep:beet_examples"]
flow = ["dep:beet_flow"]
router = ["rsx", "dep:beet_router", "beet_router/parser"]
rsx = ["dep:beet_rsx"]
ml = ["flow", "dep:beet_ml"]
spatial = ["flow", "dep:beet_spatial", "beet_ml?/spatial"]
sim = ["flow", "dep:beet_sim"]
bevy = ["dep:bevy", "beet_rsx?/bevy", "beet_router?/bevy"]
bevy_default = [
"bevy",
"bevy/default",
"beet_flow?/bevy_default",
"beet_ml?/bevy_default",
"beet_rsx?/bevy_default",
"beet_spatial?/bevy_default",
"beet_sim?/bevy_default",
]
[dependencies]
beet_flow = { workspace = true, optional = true }
beet_examples = { workspace = true, optional = true }
beet_ml = { workspace = true, optional = true }
beet_router = { workspace = true, optional = true }
beet_rsx = { workspace = true, optional = true }
beet_sim = { workspace = true, optional = true }
beet_spatial = { workspace = true, optional = true }
bevy = { workspace = true, optional = true }
[dev-dependencies]
beet = { path = "", features = ["rsx", "bevy"] }
sweet = { workspace = true, features = ["test", "bevy", "rand"] }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
beet = { path = "", features = ["router"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio.workspace = true
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
console_error_panic_hook.workspace = true
web-sys.workspace = true
[[example]]
name = "hello_rsx"
path = "examples/rsx/hello_rsx.rs"
required-features = ["rsx"]
[[example]]
name = "dom_rsx"
path = "examples/rsx/dom_rsx.rs"
required-features = ["rsx"]
[[example]]
name = "bevy_rsx"
path = "examples/rsx/bevy_rsx.rs"
required-features = ["rsx", "bevy_default"]
[[example]]
name = "bench_local"
path = "examples/flow/bench_local.rs"
required-features = ["flow"]
[[example]]
name = "bench_global"
path = "examples/flow/bench_global.rs"
required-features = ["flow"]
[[example]]
name = "hello_world"
path = "examples/flow/hello_world.rs"
required-features = ["flow"]
[[example]]
name = "long_running"
path = "examples/flow/long_running.rs"
required-features = ["flow"]
[[example]]
name = "malenia"
path = "examples/flow/malenia.rs"
required-features = ["flow"]
[[example]]
name = "repeat_while"
path = "examples/flow/repeat_while.rs"
required-features = ["flow"]
[[example]]
name = "simple_action"
path = "examples/flow/simple_action.rs"
required-features = ["flow"]
[[example]]
name = "state_machine"
path = "examples/flow/state_machine.rs"
required-features = ["flow"]
[[example]]
name = "utility_ai"
path = "examples/flow/utility_ai.rs"
required-features = ["flow"]
[[example]]
name = "hello_terminal"
path = "examples/app/hello_terminal.rs"
required-features = ["examples"]
[[package.metadata.scene]]
name = "hello-terminal"
thumb-text = "🌍"
thumb-url = "https://bevyhub-public.s3.us-west-2.amazonaws.com/assets/screenshots/hello-world.png"
description = "A simple behavior that prints 'Hello' then 'World' to the console."
app = "app"
path = "scenes/hello-world.json"
include = ["beet-debug", "bevyhub/camera-2d", "bevyhub/ui-terminal"]
[[example]]
name = "fetch"
path = "examples/ml/fetch.rs"
required-features = ["examples", "ml"]
[[example]]
name = "frozen_lake_train"
path = "examples/ml/frozen_lake_train.rs"
required-features = ["examples", "ml"]
[[example]]
name = "frozen_lake_run"
path = "examples/ml/frozen_lake_run.rs"
required-features = ["examples", "ml"]
[[example]]
name = "hello_ml_chat"
path = "examples/ml/hello_ml_chat.rs"
required-features = ["examples", "ml"]
[[example]]
name = "hello_ml"
path = "examples/ml/hello_ml.rs"
required-features = ["examples", "ml"]
[[package.metadata.scene]]
name = "hello-ml"
description = "A behavior that uses a Sentence Selector to score child behaviors, deciding which will run next."
thumb-url = "https://bevyhub-public.s3.us-west-2.amazonaws.com/assets/screenshots/hello-llm.png"
path = "scenes/hello-ml.json"
include = ["bevyhub/camera-2d", "bevyhub/ui-terminal", "beet-debug"]
[[example]]
name = "flock"
path = "examples/spatial/flock.rs"
required-features = ["examples", "spatial"]
[[example]]
name = "hello_animation"
path = "examples/spatial/hello_animation.rs"
required-features = ["examples", "spatial"]
[[package.metadata.scene]]
name = "hello-animation"
description = "A simple behavior demonstrating animation control."
thumb-url = "https://bevyhub-public.s3.us-west-2.amazonaws.com/assets/screenshots/hello-animation.png"
app = "app"
path = "scenes/hello-animation.json"
include = [
"bevyhub/ui-terminal",
"bevyhub/lighting-3d",
"bevyhub/ground-3d",
"beet-debug",
]
[[example]]
name = "inverse_kinematics"
path = "examples/spatial/inverse_kinematics.rs"
required-features = ["examples", "spatial"]
[[example]]
name = "seek"
path = "examples/spatial/seek.rs"
required-features = ["examples", "spatial"]
[[example]]
name = "seek_3d"
path = "examples/spatial/seek_3d.rs"
required-features = ["examples", "spatial"]