[package]
name = "microsandbox"
description = "`microsandbox` is the core library for the microsandbox project."
version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
edition.workspace = true
[lib]
name = "microsandbox"
path = "lib/lib.rs"
[[bin]]
name = "microsandbox"
path = "bin/main.rs"
[features]
default = ["prebuilt", "net", "keyring"]
keyring = ["dep:keyring", "dep:dbus"]
prebuilt = ["microsandbox-filesystem/prebuilt", "microsandbox-runtime/prebuilt"]
net = ["dep:microsandbox-network", "microsandbox-runtime/net"]
[dependencies]
bytes.workspace = true
chrono.workspace = true
crossterm.workspace = true
docker_credential = "1.3.2"
dirs.workspace = true
flate2.workspace = true
futures.workspace = true
libc.workspace = true
microsandbox-db = { version = "0.4.2", path = "../db" }
microsandbox-filesystem = { version = "0.4.2", path = "../filesystem", default-features = false }
microsandbox-image = { version = "0.4.2", path = "../image" }
microsandbox-migration = { version = "0.4.2", path = "../migration" }
microsandbox-network = { version = "0.4.2", path = "../network", optional = true }
microsandbox-protocol = { version = "0.4.2", path = "../protocol" }
microsandbox-runtime = { version = "0.4.2", path = "../runtime", default-features = false }
microsandbox-utils = { version = "0.4.2", path = "../utils" }
nix = { workspace = true, features = ["process", "signal"] }
rand.workspace = true
reqwest.workspace = true
scopeguard.workspace = true
sha2.workspace = true
tar.workspace = true
tempfile.workspace = true
sea-orm.workspace = true
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
tokio.workspace = true
tracing.workspace = true
typed-builder.workspace = true
which.workspace = true
[build-dependencies]
flate2.workspace = true
tar.workspace = true
ureq.workspace = true
[dev-dependencies]
ipnetwork.workspace = true
microsandbox-network = { path = "../network" }
tempfile.workspace = true
test-utils = { path = "../test-utils" }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
[target.'cfg(target_os = "macos")'.dependencies]
keyring = { version = "3.6.3", features = ["apple-native"], optional = true }
[target.'cfg(target_os = "windows")'.dependencies]
keyring = { version = "3.6.3", features = ["windows-native"], optional = true }
[target.'cfg(target_os = "linux")'.dependencies]
dbus = { version = "0.9.10", features = ["vendored"], optional = true }
keyring = { version = "3.6.3", features = ["linux-native-sync-persistent", "crypto-rust"], optional = true }