[package]
edition = "2024"
name = "stasis-rs"
version = "0.9.3"
build = "build.rs"
include = [
"/Cargo.toml",
"/README.md",
"/LICENSE-MIT",
"/LICENSE-APACHE",
"/build.rs",
"/src/**",
"/stasis-macros/**",
"/templates/**",
"/dashboard_assets/static/**",
"/dashboard_assets/styles/**",
"/docs/README.md",
"/docs/architecture/**",
"/docs/adr/**",
"/docs/v1-runtime-draft.md",
"/docs/design/stasis-framework-rfc.md",
"/docs/design/stasis-api-sdk-layer-design.md",
"/scripts/check-doc-metadata.sh",
"/examples/**",
"/tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Durable AI orchestration framework with runtime jobs, lineage, and memory integration"
homepage = "https://github.com/EntasisLabs/stasis"
documentation = "https://docs.rs/stasis-rs"
readme = "README.md"
keywords = [
"ai",
"agent",
"orchestration",
"runtime",
"workflow",
]
categories = [
"asynchronous",
"development-tools",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/EntasisLabs/stasis"
resolver = "2"
[features]
dashboard-embedded = []
dashboard-lsp = ["dep:grapheme-lsp"]
default = []
grapheme-full = [
"grapheme-sdk/full",
"grapheme-compiler/full",
]
otel = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
]
transport-kafka = ["dep:rskafka"]
transport-kafka-wasm = []
transport-rabbitmq = ["dep:lapin"]
[lib]
name = "stasis"
path = "src/lib.rs"
[[bin]]
name = "stasis_dashboard"
path = "src/bin/stasis_dashboard.rs"
[[example]]
name = "agentic_workflows_production"
path = "examples/agentic_workflows_production.rs"
[[example]]
name = "runtime_backends_profiles"
path = "examples/runtime_backends_profiles.rs"
[[example]]
name = "runtime_in_memory"
path = "examples/runtime_in_memory.rs"
[[example]]
name = "simple_agent"
path = "examples/simple_agent.rs"
[[example]]
name = "simple_agent_production"
path = "examples/simple_agent_production.rs"
[[example]]
name = "team_role_workflows"
path = "examples/team_role_workflows.rs"
[[test]]
name = "architecture_conformance"
path = "tests/architecture_conformance.rs"
[[test]]
name = "bounded_provider_stream"
path = "tests/bounded_provider_stream.rs"
[[test]]
name = "chat_middleware_pipeline"
path = "tests/chat_middleware_pipeline.rs"
[[test]]
name = "control_plane_delivery_diagnostics"
path = "tests/control_plane_delivery_diagnostics.rs"
[[test]]
name = "dashboard_bootstrap"
path = "tests/dashboard_bootstrap.rs"
[[test]]
name = "dashboard_trace_propagation"
path = "tests/dashboard_trace_propagation.rs"
[[test]]
name = "job_lifecycle_recovery"
path = "tests/job_lifecycle_recovery.rs"
[[test]]
name = "locus_memory_adapters"
path = "tests/locus_memory_adapters.rs"
[[test]]
name = "otel_runtime_parity"
path = "tests/otel_runtime_parity.rs"
[[test]]
name = "production_examples_smoke"
path = "tests/production_examples_smoke.rs"
[[test]]
name = "runtime_backend_parity"
path = "tests/runtime_backend_parity.rs"
[[test]]
name = "stasis_tool_macro"
path = "tests/stasis_tool_macro.rs"
[[test]]
name = "typed_jobs_signals_leases"
path = "tests/typed_jobs_signals_leases.rs"
[dependencies.anyhow]
version = "1"
[dependencies.askama]
version = "0.12"
features = ["with-axum"]
[dependencies.askama_axum]
version = "0.4"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.chrono-tz]
version = "0.10"
[dependencies.cron]
version = "0.12"
[dependencies.dotenvy]
version = "0.15"
[dependencies.futures-util]
version = "0.3"
[dependencies.genai]
version = "0.6.5"
[dependencies.grapheme-compiler]
version = "0.7.1"
default-features = false
[dependencies.grapheme-lsp]
version = "0.7.1"
optional = true
default-features = false
[dependencies.grapheme-sdk]
version = "0.7.1"
features = ["host"]
default-features = false
[dependencies.hex]
version = "0.4"
[dependencies.lapin]
version = "2"
optional = true
[dependencies.locus-core-rs]
version = "=0.5.0"
[dependencies.locus-sdk]
version = "=0.3.0"
[dependencies.opentelemetry]
version = "0.29"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.29"
features = [
"grpc-tonic",
"metrics",
]
optional = true
[dependencies.opentelemetry_sdk]
version = "0.29"
features = ["rt-tokio"]
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rskafka]
version = "0.5"
optional = true
[dependencies.rust-embed]
version = "8"
[dependencies.schemars]
version = "0.8"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.stasis-macros]
version = "0.1.0"
package = "stasis-rs-macros"
[dependencies.surrealdb]
version = "3"
features = [
"kv-surrealkv",
"rustls",
"kv-mem",
"protocol-ws",
]
default-features = false
[dependencies.surrealdb-types]
version = "3"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
"time",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[build-dependencies]