[package]
name = "microsandbox-runtime"
description = "Runtime library for the microsandbox sandbox process and microVM entry points."
version.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
edition.workspace = true
[lib]
name = "microsandbox_runtime"
path = "lib/lib.rs"
[features]
default = ["download-binaries", "embed-binaries", "net", "runner"]
client = ["dep:hex", "dep:microsandbox-image", "dep:rand", "dep:tempfile", "dep:tokio"]
runner = [
"client",
"dep:bytes",
"dep:crossbeam-queue",
"dep:clap",
"dep:hex",
"dep:microsandbox-image",
"dep:microsandbox-agent-client",
"dep:microsandbox-filesystem",
"dep:microsandbox-metrics",
"dep:microsandbox-vsock",
"dep:msb_krun",
"dep:rand",
"dep:rustls",
"dep:tempfile",
"dep:tokio",
"microsandbox-network?/engine",
]
download-binaries = ["runner", "microsandbox-filesystem/download-binaries"]
embed-binaries = ["runner", "microsandbox-filesystem/embed-binaries"]
net = ["dep:microsandbox-network", "msb_krun?/net"]
[dependencies]
base64.workspace = true
ciborium-ll.workspace = true
bytes = { workspace = true, optional = true }
chrono.workspace = true
clap = { workspace = true, features = ["derive"], optional = true }
hex = { workspace = true, optional = true }
crossbeam-queue = { workspace = true, optional = true }
libc.workspace = true
microsandbox-agent-client = { workspace = true, optional = true }
microsandbox-db.workspace = true
microsandbox-image = { workspace = true, optional = true }
microsandbox-filesystem = { workspace = true, optional = true }
microsandbox-metrics = { workspace = true, optional = true }
microsandbox-network = { workspace = true, default-features = false, optional = true }
microsandbox-protocol.workspace = true
microsandbox-types.workspace = true
microsandbox-utils.workspace = true
microsandbox-vsock = { workspace = true, optional = true }
msb_krun = { workspace = true, features = ["blk"], optional = true }
nix = { workspace = true, features = ["process", "signal"] }
rand = { workspace = true, optional = true }
rustls = { workspace = true, optional = true }
sea-orm.workspace = true
serde.workspace = true
serde_json.workspace = true
sha2.workspace = true
tempfile = { workspace = true, optional = true }
thiserror.workspace = true
tokio = { workspace = true, optional = true }
tokio-util = { workspace = true, features = ["rt"] }
tracing.workspace = true
zeroize.workspace = true
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61.2", features = ["Win32_Foundation", "Win32_Security", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_Kernel", "Win32_System_SystemInformation", "Win32_System_Threading"] }
[target.'cfg(unix)'.dependencies]
microsandbox-agent-client = { workspace = true, features = ["uds"], optional = true }
[target.'cfg(windows)'.dependencies.microsandbox-agent-client]
workspace = true
features = ["named-pipe"]
optional = true
[dev-dependencies]
microsandbox-protocol-client.workspace = true
microsandbox-control-client.workspace = true
microsandbox-migration.workspace = true
tempfile.workspace = true
tokio = { workspace = true, features = ["test-util"] }