[package]
name = "boxlite"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "Embeddable virtual machine runtime for secure, isolated code execution"
repository = "https://github.com/boxlite-ai/boxlite"
keywords = ["vm", "sandbox", "isolation", "container", "security"]
categories = ["virtualization"]
links = "boxlite"
[package.metadata.docs.rs]
no-default-features = true
[lib]
name = "boxlite"
path = "src/lib.rs"
crate-type = ["rlib"]
[[bin]]
name = "boxlite-shim"
path = "src/bin/shim/main.rs"
[features]
default = ["gvproxy-backend"]
libslirp-backend = []
gvproxy-backend = ["dep:libgvproxy-sys"]
[dependencies]
boxlite-shared = { path = "../boxlite-shared", version = "0.5.11" }
e2fsprogs-sys = { path = "deps/e2fsprogs-sys", version = "0.5.11" }
libgvproxy-sys = { path = "deps/libgvproxy-sys", version = "0.5.11", optional = true }
libkrun-sys = { path = "deps/libkrun-sys", version = "0.5.11" }
thiserror = "1.0"
async-trait = "0.1"
serde = { version = "1.0", features = ["derive"] }
dirs = "5.0"
tokio = { version = "1.37", features = ["rt", "rt-multi-thread", "macros", "sync", "net", "time", "process", "io-util", "signal"] }
tokio-util = "0.7"
serde_json = "1.0"
futures = "0.3"
async-stream = "0.3"
tonic = "0.12"
tower = "0.5"
hyper-util = { version = "0.1", features = ["tokio"] }
uuid = { version = "1.10", features = ["v4"] }
ulid = "1.1"
chrono = { version = "0.4", features = ["serde"] }
anyhow = "1.0"
base64 = "0.22"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter", "ansi"] }
tracing-appender = "0.2"
sysinfo = "0.30"
libc = "0.2"
rayon = "1.10"
rusqlite = { version = "0.32", features = ["bundled"] }
parking_lot = "0.12"
inventory = "0.3"
clap = { version = "4.5", features = ["derive"] }
oci-client = { version = "0.15", default-features = false, features = ["rustls-tls"] }
oci-spec = "0.8.3"
tar = "0.4"
flate2 = "1.0"
sha2 = "0.10"
xattr = "1.0"
walkdir = "2.5"
filetime = "0.2"
tempfile = "3.8"
tokio-stream = "0.1.17"
term_size = "0.3"
qcow2-rs = "0.1.6"
nix = { version = "0.30.1", features = ["mount"] }
rand = "0.9.2"
hex = "0.4.3"
signal-hook = "0.3"
[target.'cfg(target_os = "linux")'.dependencies]
bubblewrap-sys = { path = "deps/bubblewrap-sys", version = "0.5.11" }
caps = "0.5"
fuse-backend-rs = { version = "0.12", features = ["fusedev"] }
seccompiler = "0.4"
bincode = "2.0"
displaydoc = "0.2"
[build-dependencies]
pkg-config = "0.3"
regex = "1"
[target.'cfg(target_os = "linux")'.build-dependencies]
seccompiler = { version = "0.4", features = ["json"] }
bincode = "2.0"
[dev-dependencies]