[package]
name = "runx-runtime"
version = "0.6.19"
edition.workspace = true
rust-version.workspace = true
description = "Native Rust runtime for local runx execution, adapters, harness replay, receipts, and sandboxing."
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
keywords = ["runx", "runtime", "agents", "sandbox", "mcp"]
categories = ["development-tools"]
include = ["Cargo.toml", "README.md", "src/**/*.rs"]
autotests = false
[lints]
workspace = true
[features]
default = []
async-http = ["dep:reqwest", "dep:tokio", "dep:rustls"]
cli-tool = ["async-http"]
mcp = ["dep:rmcp", "dep:tokio", "tokio/process", "tokio/io-util", "tokio/sync", "tokio/rt-multi-thread"]
mcp-http-server = [
"mcp",
"rmcp/transport-streamable-http-server",
"dep:bytes",
"dep:http",
"dep:http-body-util",
"dep:hyper",
"dep:hyper-util",
"dep:tower-service",
]
a2a = []
agent = ["async-http", "catalog"]
catalog = ["cli-tool"]
external-adapter = []
http = ["async-http"]
thread-outbox-provider = []
[dependencies]
aes-gcm = "0.11.0"
base64 = "0.22.1"
bytes = { version = "1.11.1", optional = true }
http = { version = "1.4.0", optional = true }
http-body-util = { version = "0.1.3", optional = true }
runx-contracts.workspace = true
runx-core.workspace = true
runx-parser.workspace = true
runx-receipts.workspace = true
reqwest = { version = "=0.13.4", default-features = false, features = ["rustls-no-provider", "json", "gzip", "brotli", "deflate", "zstd", "http2"], optional = true }
ring = "0.17.14"
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"], optional = true }
rustix = { version = "1.1.4", features = ["process"] }
rmcp = { version = "=1.8.0", default-features = false, features = ["client", "server"], optional = true }
hyper = { version = "=1.10.1", default-features = false, features = ["server", "http1"], optional = true }
hyper-util = { version = "=0.1.20", default-features = false, features = ["service", "tokio"], optional = true }
serde.workspace = true
serde_json.workspace = true
serde_norway.workspace = true
sha2.workspace = true
thiserror.workspace = true
tokio = { version = "=1.52.3", default-features = false, features = ["rt", "net", "time"], optional = true }
tower-service = { version = "0.3.3", optional = true }
url = "2.5.7"
wait-timeout = "0.2.1"
[dev-dependencies]
criterion = "0.7.0"
proptest = { version = "1.11.0", default-features = false, features = ["std"] }
tempfile = "3.23.0"
[lib]
name = "runx_runtime"
path = "src/lib.rs"
[[bin]]
name = "runx-harness-fixture-oracles"
path = "src/bin/runx-harness-fixture-oracles.rs"
test = false
bench = false
[[bin]]
name = "runx-mcp-session-probe"
path = "src/bin/runx-mcp-session-probe.rs"
test = false
bench = false
[[test]]
name = "integration"
path = "tests/integration.rs"
[[bench]]
name = "graph_throughput"
harness = false