[package]
name = "rsclaw-runtime"
version = "2026.6.26"
edition = "2024"
rust-version = "1.91"
description = "rsclaw composition root: AppState/RPC handlers (a2a, cmd, cron, gateway, hooks, server, ws) + process entry point"
repository = "https://github.com/rsclaw-ai/rsclaw"
license = "MIT OR Apache-2.0"
[lib]
name = "rsclaw_runtime"
path = "src/lib.rs"
[dependencies]
rsclaw-agent = { path = "../rsclaw-agent", version = "0.1.0" }
rsclaw-types = { path = "../rsclaw-types", version = "0.1.0" }
rsclaw-a2a-types = { path = "../rsclaw-a2a-types", version = "0.1.0" }
rsclaw-config = { path = "../rsclaw-config", version = "0.1.0" }
rsclaw-artifact = { path = "../rsclaw-artifact", version = "0.1.0" }
rsclaw-mcp = { path = "../rsclaw-mcp", version = "0.1.0" }
rsclaw-cap = { path = "../rsclaw-cap", version = "0.1.0" }
rsclaw-heartbeat = { path = "../rsclaw-heartbeat", version = "0.1.0" }
rsclaw-cli = { path = "../rsclaw-cli", version = "0.1.0" }
rsclaw-migrate = { path = "../rsclaw-migrate", version = "0.1.0" }
rsclaw-desktop = { path = "../rsclaw-desktop", version = "0.1.0" }
rsclaw-evolution = { path = "../rsclaw-evolution", version = "0.1.0" }
rsclaw-memory = { path = "../rsclaw-memory", version = "0.1.0" }
rsclaw-doc = { path = "../rsclaw-doc", version = "0.1.0" }
rsclaw-browser = { path = "../rsclaw-browser", version = "0.1.0" }
rsclaw-channel = { path = "../rsclaw-channel", version = "0.1.0" }
rsclaw-computer = { path = "../rsclaw-computer", version = "0.1.0" }
rsclaw-kb = { path = "../rsclaw-kb", version = "0.1.0" }
rsclaw-plugin = { path = "../rsclaw-plugin", version = "0.1.0" }
rsclaw-skill = { path = "../rsclaw-skill", version = "0.1.0" }
rsclaw-tools = { path = "../rsclaw-tools", version = "0.1.0" }
rsclaw-store = { path = "../rsclaw-store", version = "0.1.0" }
rsclaw-jobs = { path = "../rsclaw-jobs", version = "0.1.0" }
rsclaw-embed = { path = "../rsclaw-embed", version = "0.1.0" }
rsclaw-provider = { path = "../rsclaw-provider", version = "0.1.0" }
rsclaw-retry = { path = "../rsclaw-retry", version = "0.1.0" }
rsclaw-util = { path = "../rsclaw-util", version = "0.1.0" }
rsclaw-platform = { path = "../rsclaw-platform", version = "0.1.0" }
rsclaw-i18n = { path = "../rsclaw-i18n", version = "0.1.0" }
rsclaw-events = { path = "../rsclaw-events", version = "0.1.0" }
rsclaw-cron = { path = "../rsclaw-cron", version = "0.1.0" }
rsclaw-watch = { path = "../rsclaw-watch", version = "0.1.0" }
tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["rt"] }
dashmap = "6"
eventsource-stream = "0.2"
axum = { version = "0.8", features = ["ws", "multipart", "macros"] }
reqwest = { version = "0.12", features = ["json", "stream", "multipart", "blocking", "rustls-tls-webpki-roots-no-provider", "socks"], default-features = false }
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "logging", "std", "tls12"] }
redb = "4.1"
redb_legacy = { package = "redb", version = "2.6" }
tantivy = "0.22"
hnsw_rs = "0.3"
candle-core = "0.9"
candle-nn = "0.9"
candle-transformers = "0.9"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["preserve_order"] }
json5 = "1"
toml = "1"
anyhow = "1"
thiserror = "2"
async-trait = "0.1"
async-stream = "0.3"
clap = { version = "4", features = ["derive", "env"] }
dialoguer = "0.12"
ratatui = "0.28"
crossterm = "0.28"
uuid = { version = "1", features = ["v4"] }
regex = "1"
jaq-core = "3"
jaq-json = { version = "2", features = ["sync"] }
jaq-std = "3"
chrono = { version = "0.4", features = ["serde"] }
chrono-tz = "0.10"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "json", "chrono"] }
rand = "0.9"
which = "7"
serde_yaml_ng = "0.10"
anycli = "0.2"
sys-info = "0.9"
flate2 = "1"
tar = "0.4"
md-5 = "0.10"
sha1 = "0.10"
sha2 = "0.10"
hmac = "0.12"
hex = "0.4"
dirs-next = "2"
console = "0.16"
tempfile = "3"
indicatif = "0.17"
rayon = "1"
libc = "0.2"
tokio-tungstenite = { version = "0.29", features = ["rustls-tls-webpki-roots"] }
futures = "0.3"
bytes = "1"
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
tokenizers = "0.21"
qrcode = "0.14"
xz2 = "0.1"
zip = "2"
rust_xlsxwriter = "0.83"
calamine = "0.26"
docx-rs = "0.4"
krilla = "0.7"
pdf-extract = "0.10"
base64 = "0.22"
ed25519-dalek = "2"
aes = "0.8"
urlencoding = "2"
silk-rs = "0.2"
symphonia = { version = "0.5", features = ["mp3", "aac", "ogg", "flac", "wav", "pcm", "vorbis", "isomp4", "mkv"] }
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif"] }
opus-decoder = "0.1"
enigo = "0.6"
display-info = "0.5"
ogg = "0.9"
lark-websocket-protobuf = "0.1"
prost = "0.13"
mime = "0.3"
mime_guess = "2"
matrix-sdk = { version = "0.9", optional = true, default-features = false, features = ["e2e-encryption", "rustls-tls", "sqlite"] }
fs2 = "0.4.3"
htmd = "0.5"
lol_html = "1.2"
include_dir = "0.7"
wasmtime = { version = "36.0.10", features = ["async"] }
wasmtime-wasi = "36.0.10"
moka = { version = "0.12", features = ["future"] }
tray-icon = { version = "0.21", optional = true }
muda = { version = "0.17", optional = true }
bzip2 = "0.6.1"
lopdf = "0.34"
glob = "0.3.3"
ignore = "0.4"
globset = "0.4"
encoding_rs = "0.8.35"
url = "2"
arc-swap = "1.7"
ulid = "1"
once_cell = "1"
jieba-rs = "0.7"
mailparse = "0.16.1"
cap-rs = { version = "0.1.0", default-features = false, features = ["stream-json", "codex", "acp"] }
[features]
default = ["openclaw-migrate"]
channel-matrix = ["dep:matrix-sdk"]
openclaw-migrate = ["rsclaw-migrate/openclaw-migrate"]
tray = ["dep:tray-icon", "dep:muda"]
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["handleapi", "processthreadsapi", "winnt"] }
[dev-dependencies]
tokio-test = "0.4"
tempfile = "3"
wiremock = "0.6"
ctor = "0.4"