nordisk/heimdall
crates/heimdall-plain/Cargo.toml
[package]
name = "nordisk-heimdall-plain"
description = "Heimdall is a defensive sandbox: heimdall-plain is the interim milestone 0 JobRunner, an ordinary youki (libcontainer) container per job with no Heimdall protections, stated truthfully in its features."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme.workspace = true
rust-version.workspace = true
keywords = ["sandbox","container","youki","oci","security"]
categories = ["virtualization"]
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
# Default features only: the youki shim (feature `youki`) needs libseccomp.
[lib]
name = "heimdall_plain"
path = "src/lib.rs"
[features]
# The shim (youki libcontainer + libseccomp; needs libseccomp-dev to build).
# Off by default so the workspace builds without the C library; the runner
# itself works without it, given a `heimdall-plain-shim` built with it:
# cargo build -p nordisk-heimdall-plain --features youki --bin heimdall-plain-shim
default = []
youki = ["dep:libcontainer", "dep:nix"]
[dependencies]
heimdall-core = { package = "nordisk-heimdall-core", path = "../heimdall-core", version = "0.1.0" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
tar = "0.4"
flate2 = "1"
libc = "0.2"
thiserror = "2"
# Pinned: the plain runner is exactly this youki.
libcontainer = { version = "=0.7.0", default-features = false, features = ["v2", "libseccomp"], optional = true }
nix = { version = "0.29", features = ["signal", "process"], optional = true }
[dev-dependencies]
proptest = "1"
[[bin]]
name = "heimdall-plain-shim"
path = "src/bin/heimdall-plain-shim.rs"
required-features = ["youki"]