beet 0.0.2

A very flexible AI behavior library for games and robotics.
Documentation
# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1

# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 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

[features]
default = ["ml", "animation", "assets", "ui", "net"]
ml = ["dep:beet_ml"]
net = ["dep:beet_net"]
ui = ["beet_core/ui"]
assets = ["beet_core/assets"]
animation = ["beet_core/animation"]
reflect = ["beet_ecs/reflect"]
tokio = ["beet_net/tokio"]

# dynamic_linking = ["bevy/dynamic_linking"]

[dependencies]
beet_ecs.workspace = true
beet_core.workspace = true
beet_ml = { workspace = true, optional = true }
beet_net = { workspace = true, optional = true }

[dev-dependencies]
bevy = { workspace = true, default-features = true }
log.workspace = true
pretty_env_logger.workspace = true
forky_bevy.workspace = true
anyhow.workspace = true
serde.workspace = true
serde_json.workspace = true

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
console_log.workspace = true
web-sys.workspace = true
wasm-bindgen.workspace = true

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tokio.workspace = true


### WORKSPACE ################################################################################################z###########################

[workspace.package]
version = "0.0.2"
edition = "2021"
description = "A very flexible AI behavior library for games and robotics."
documentation = "https://beetmash.com/docs/beet"
readme = "README.md"
homepage = "https://beetmash.com/docs/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]
# default resolver
resolver = "2"
members = [
	"crates/beet_examples",
	# "crates/beet",
	"crates/beet_core",
	"crates/beet_ecs",
	"crates/beet_ecs/macros",
	"crates/beet_ml",
	"crates/beet_net",
	"crates/beet_server",
	"crates/beet_web",
	# "crates/cli",
]
exclude = ["crates/beet_esp"]

[workspace.dependencies]
## internal
beet = { path = "./", version = "0.0.2" }
beet_core = { path = "crates/beet_core", version = "0.0.2", default-features = false }
beet_ecs = { path = "crates/beet_ecs", version = "0.0.2" }
beet_ecs_macros = { path = "crates/beet_ecs/macros", version = "0.0.2" }
beet_ml = { path = "crates/beet_ml", version = "0.0.2" }
beet_net = { path = "crates/beet_net", version = "0.0.2" }
beet_server = { path = "crates/beet_server", version = "0.0.2" }
beet_examples = { path = "crates/beet_examples", version = "0.0.2" }

## local
# forky_core = { path = "../forky/crates/forky/forky_core" }
# forky_bevy = { path = "../forky/crates/forky/forky_bevy" }
# forky_web = { path = "../forky/crates/forky/forky_web", default-features = false }
# sweet = { path = "../forky/crates/sweet", features = ["bevy"] }

forky_core = "0.1.50"
forky_bevy = "0.1.50"
forky_web = "0.1.50"
sweet = { version = "0.1.50", features = ["bevy"] }

## logging
log = "0.4"
pretty_env_logger = "0.4"
console_log = { version = "1.0", features = ["color"] }

## utility
anyhow = "1.0.75"
thiserror = "1.0.60"
bytemuck = "1.13.1"
petgraph = { version = "0.6.4", features = ["serde-1"] }
heck = "0.4"
rand = "0.8"

## async
futures = "0.3"


## async-native
tokio = { version = "1.35", features = ["full"] }
futures-util = { version = "0.3", default-features = false, features = [
	"sink",
	"std",
] }
tokio-tungstenite = { version = "0.21" }

## macros
syn = "2.0"
quote = "1.0"
proc-macro2 = "1.0"

## attributes
num-traits = "0.2.15"
derive_deref = "1.1.1"
strum = { version = "0.26.0", features = ["derive"] }
strum_macros = "0.26.0"
extend = "1.1.2"

# channels
# parking_lot = {version = "0.12", features = ["wasm-bindgen"] } # fast alternative std::sync::Mutex/RwLock
# flume = { version = "0.11", default-features = false, features = ["async"] }
flume = "0.11"

## io
serde = { version = "1", features = ["derive"] }
serde_json = "1"
bincode = "1"
ron = "0.8"

## game
bevy = { version = "0.14", default-features = false, features = [
	"bevy_scene",
	"serialize",
	# "bevy_color",
] }


# [target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
console_error_panic_hook = "0.1"

[workspace.dependencies.web-sys]
# [target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
	# HTML
	'Headers',
	'Document',
	'Element',
	'Window',
	"Cache",
	"CacheStorage",
	'HtmlIFrameElement',
	'DomRectReadOnly',
	# Style
	'MediaQueryList',
	# Events
	'MouseEvent',
	'KeyboardEvent',
	'CustomEvent',
	'CustomEventInit',
	# JS
	'Gpu',
	'console',
	'Navigator',
	'Performance',
	# Fetch
	'Request',
	'RequestInit',
	'RequestMode',
	'Response',
	# Blob
	'Blob',
	'BlobEvent',
	'BlobEventInit',
	'BlobPropertyBag',
	# Elements
	'HtmlAnchorElement',
	'HtmlCanvasElement',
	'HtmlInputElement',
	'File',
	'FileList',
	# Url
	'Url',
	'History',
	'Location',
	'UrlSearchParams',
	# indexedDB
	"IdbCursor",
	"IdbCursorDirection",
	"IdbCursorWithValue",
	"IdbDatabase",
	"IdbFactory",
	"IdbFileHandle",
	"IdbFileMetadataParameters",
	"IdbFileRequest",
	"IdbIndex",
	"IdbIndexParameters",
	"IdbKeyRange",
	"IdbLocaleAwareKeyRange",
	"IdbMutableFile",
	"IdbObjectStore",
	"IdbObjectStoreParameters",
	"IdbOpenDbOptions",
	"IdbOpenDbRequest",
	"IdbRequest",
	"IdbRequestReadyState",
	"IdbTransaction",
	"IdbTransactionMode",
	"IdbVersionChangeEvent",
	"IdbVersionChangeEventInit",
]