leviath-runtime 0.3.2

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"]

[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 }
# File permissions (the persistence lane writes every run file 0600) and the
# control socket's peer-uid check. Not optional: persistence is compiled into
# every build, including an embedder's. `leviath-sys` has no leviath
# dependencies of its own, so this adds no cycle.
leviath-sys = { workspace = 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 = { workspace = true }

[dev-dependencies]
leviath-testkit = { workspace = true }
async-trait = { workspace = true }
# `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