[package]
name = "zlayer-agent"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Container runtime agent using libcontainer/youki"
keywords = ["container", "runtime", "youki", "libcontainer", "orchestration"]
categories = ["os", "virtualization"]
readme = "README.md"
[features]
default = []
youki-runtime = ["dep:libcontainer"]
hcs-runtime = []
wsl = ["dep:zlayer-wsl", "dep:anyhow"]
docker = ["dep:bollard"]
wasm = [
"dep:wasmtime",
"dep:wasmtime-wasi",
"dep:wasmtime-wasi-http",
"dep:http",
"dep:http-body-util",
"dep:hyper",
"dep:anyhow",
"dep:sha2",
]
s3 = ["zlayer-init-actions/s3", "zlayer-registry/s3", "dep:zlayer-storage"]
[dependencies]
async-trait.workspace = true
chrono.workspace = true
cron.workspace = true
parking_lot.workspace = true
zlayer-init-actions.workspace = true
libc.workspace = true
nix.workspace = true
oci-client.workspace = true
oci-spec.workspace = true
reqwest = { workspace = true, features = ["json"] }
serde.workspace = true
serde_json.workspace = true
serde_yaml.workspace = true
zlayer-secrets.workspace = true
zlayer-spec.workspace = true
zlayer-types.workspace = true
thiserror.workspace = true
tokio.workspace = true
tracing.workspace = true
uuid.workspace = true
zlayer-core.workspace = true
zlayer-observability.workspace = true
zlayer-proxy.workspace = true
zlayer-registry = { workspace = true, features = ["persistent", "local"] }
zlayer-overlay.workspace = true
ipnetwork = "0.21.1"
num_cpus.workspace = true
zlayer-scheduler.workspace = true
zlayer-storage = { workspace = true, optional = true }
ulid = "1.2.1"
jsonwebtoken.workspace = true
futures-util.workspace = true
tokio-stream.workspace = true
bollard = { version = "0.20", default-features = false, features = ["ssl", "time", "pipe", "http"], optional = true }
wasmtime = { version = "41", default-features = false, features = ["async", "cranelift", "component-model"], optional = true }
wasmtime-wasi = { version = "41", optional = true }
wasmtime-wasi-http = { version = "41", optional = true }
bytes = "1"
http = { version = "1", optional = true }
http-body-util = { version = "0.1", optional = true }
hyper = { version = "1", optional = true }
anyhow = { version = "1", optional = true }
sha2 = { workspace = true, optional = true }
zlayer-paths.workspace = true
[target.'cfg(target_os = "linux")'.dependencies]
libcontainer = { package = "zlayer-libcontainer", version = "0.6.1-zlayer.1", optional = true }
rtnetlink = "0.14"
netlink-packet-route = "0.19"
tar = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
dirs = "5"
libloading = "0.8"
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.62", features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_System_Threading",
"Win32_System_IO",
"Win32_System_HostComputeSystem",
] }
zlayer-hcs = { workspace = true }
zlayer-hns = { workspace = true }
zlayer-wsl = { workspace = true, optional = true }
tar = { workspace = true }
flate2 = { workspace = true }
zstd = "0.13"
sha2 = { workspace = true }
hex = { workspace = true }
[dev-dependencies]
rand = { workspace = true }
tempfile = "3.24.0"
wat = "1.244.0"
[lints]
workspace = true