leviath-runtime 0.2.0

ECS-based agent execution engine for Leviath
Documentation
[package]
name = "leviath-runtime"
description = "ECS-based agent execution engine for Leviath"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"

[features]
# The daemon's control transport (unix socket / named pipe, auth token, pid
# file). Off by default so embedders compile a runtime with no daemon
# machinery; the CLI turns it on.
control-socket = ["dep:rand", "dep:leviath-sys"]

[dependencies]
leviath-core = { workspace = true }
# Custom-region Rhai hooks (render/on_write/on_overflow). The boundary is
# JSON-in/JSON-out, so this crate needs no direct rhai dependency.
leviath-scripting = { workspace = true }
# Control-channel token generation (control-socket only).
rand = { workspace = true, optional = true }
leviath-providers = { workspace = true }
# For the control socket's file permissions and peer-uid check. `leviath-sys`
# has no leviath dependencies of its own, so this adds no cycle.
leviath-sys = { workspace = true, optional = true }
leviath-tools = { workspace = true }
bevy_ecs = { workspace = true }
bevy_tasks = { workspace = true }
tokio = { workspace = true }
tokio-stream = { workspace = true, features = ["sync"] }
futures-core = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tracing = { workspace = true }
chrono = { workspace = true }
async-trait = "0.1"

[dev-dependencies]
leviath-testkit = { workspace = true }
async-trait = "0.1"
# `start_paused` / `advance`, so the interaction deadline is tested by moving a
# virtual clock rather than by sleeping through a real hour.
tokio = { workspace = true, features = ["test-util"] }
temp-env = { workspace = true, features = ["async_closure"] }
tempfile = "3"

[lints]
workspace = true