[package]
edition = "2024"
name = "steady_state"
version = "0.2.9"
authors = ["Nathan Tippy <nathan@tippy.name>"]
build = "build.rs"
exclude = [
"**/*.txt",
"**/*.sh",
"notes/",
"temp/",
"target/**",
]
include = [
"templates/**",
"src/**",
"Cargo.toml",
"README.md",
"build.rs",
"static/telemetry/**",
"**/*.gz.b64",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Framework for building long running low latency actor based services on Linux. Provides visual telemetry to watch data flows between actors. Uses Erlang style supervisors to defend against panics and uses non blocking async ringbuffers for inter actor communication."
documentation = "https://docs.rs/steady_state/0.2.7/steady_state/"
readme = "README.md"
license = "MIT"
repository = "https://github.com/kmf-lab/steady-state-stack"
resolver = "2"
[package.metadata.docs.rs]
features = ["exec_async_std"]
no-default-features = true
cargo-args = [
"-Zunstable-options",
"-Zrustdoc-scrape-examples",
]
[features]
core_affinity = [
"libc",
"winapi",
]
core_display = [
"libc",
"winapi",
]
default = [
"exec_async_std",
"telemetry_server_builtin",
"prometheus_metrics",
"core_display",
"core_affinity",
]
disable_actor_restart_on_failure = []
exec_async_std = ["async-std"]
proactor_nuclei = [
"dep:nuclei",
"nuclei?/async-exec",
"nuclei?/iouring",
]
proactor_tokio = [
"dep:nuclei",
"nuclei?/tokio",
"nuclei?/iouring",
]
prometheus_metrics = []
telemetry_history = []
telemetry_on_telemetry = []
telemetry_server_builtin = []
telemetry_server_cdn = []
[lib]
name = "steady_state"
path = "src/lib.rs"
[dependencies.aeron]
version = "0.2"
[dependencies.ahash]
version = "0.8"
[dependencies.async-io]
version = "2.6"
[dependencies.async-lock]
version = "3.4"
[dependencies.async-ringbuf]
version = "0.3"
[dependencies.async-std]
version = "1.13"
features = ["default"]
optional = true
[dependencies.bincode]
version = "2.0"
[dependencies.bytes]
version = "1.11"
features = []
[dependencies.clap]
version = "4.5"
features = ["derive"]
[dependencies.ctrlc]
version = "3.5"
[dependencies.dirs]
version = "6.0.0"
[dependencies.flexi_logger]
version = "0.31"
features = [
"colors",
"async",
]
[dependencies.futures]
version = "0.3"
[dependencies.futures-lite]
version = "2.6"
[dependencies.futures-timer]
version = "3.0"
[dependencies.futures-util]
version = "0.3"
[dependencies.hdrhistogram]
version = "7.5"
[dependencies.itoa]
version = "1.0"
[dependencies.lazy_static]
version = "1.5"
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.num-traits]
version = "0.2"
[dependencies.parking_lot]
version = "0.12"
[dependencies.ringbuf]
version = "0.4"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.tempfile]
version = "3.24"
[dependencies.time]
version = "0.3"
features = [
"macros",
"formatting",
"parsing",
]
[dependencies.uuid]
version = "1.19"
features = ["v4"]
[dependencies.winapi]
version = "0.3"
[dev-dependencies.async-std]
version = "1.13"
features = ["attributes"]
[dev-dependencies.isahc]
version = "1.7"
[dev-dependencies.rand]
version = "0.9"
[dev-dependencies.rand_distr]
version = "0.5"
[build-dependencies.askama]
version = "0.14"
[build-dependencies.flate2]
version = "1.1"
[build-dependencies.isahc]
version = "1.7"
[build-dependencies.tempfile]
version = "3.24"
[target."cfg(not(windows))".dependencies.nuclei]
version = "0.4.4"
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
optional = true
[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = [
"winbase",
"processthreadsapi",
]
optional = true
[lints.clippy]
enum_glob_use = "deny"
unwrap_used = "deny"
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
strip = "symbols"