[package]
edition = "2021"
rust-version = "1.85"
name = "draupnir"
version = "0.1.9"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Draupnir — the nordisk boot/provisioning library: fire up a runtime from one BootSpec across three backends (KVM via tunnr · OCI container · Redfish bare-metal virtual-media) and drive its power lifecycle. Odin's ring that drips eight identical copies → boot a fleet of identical machines from one ISO."
readme = "README.md"
keywords = [
"boot",
"provisioning",
"redfish",
"kvm",
"container",
]
categories = [
"virtualization",
"os",
]
license = "MIT OR Apache-2.0"
repository = "https://codeberg.org/nordisk/draupnir"
[features]
backend-oci = [
"dep:bollard",
"dep:tokio",
"dep:futures",
"dep:tar",
"dep:bytes",
"dep:serde_json",
]
backend-redfish = [
"dep:ureq",
"dep:serde_json",
]
backend-tunnr = [
"dep:tunnr-vm",
"seed",
]
backend-youki = [
"dep:libcontainer",
"dep:rustix",
"dep:flate2",
"dep:tar",
]
default = []
redfish-server = [
"dep:rustls",
"dep:rcgen",
"dep:serde_json",
]
seed = ["dep:fatfs"]
testmatrix = [
"dep:nornir-testmatrix",
"nornir-testmatrix/testmatrix",
]
[lib]
name = "draupnir"
path = "src/lib.rs"
[[example]]
name = "youki_smoke"
path = "examples/youki_smoke.rs"
[[test]]
name = "boot_off_medium_proof"
path = "tests/boot_off_medium_proof.rs"
[[test]]
name = "live_oci_list_and_env"
path = "tests/live_oci_list_and_env.rs"
[[test]]
name = "live_oci_published_port"
path = "tests/live_oci_published_port.rs"
[[test]]
name = "redfish_kvm_loop_proof"
path = "tests/redfish_kvm_loop_proof.rs"
[[test]]
name = "redfish_server_conformance"
path = "tests/redfish_server_conformance.rs"
[[test]]
name = "silenced_tests_guard"
path = "tests/silenced_tests_guard.rs"
[[test]]
name = "stage1_container_start_proof"
path = "tests/stage1_container_start_proof.rs"
[[test]]
name = "stage2_youki_start_proof"
path = "tests/stage2_youki_start_proof.rs"
[[test]]
name = "testmatrix_rows"
path = "tests/testmatrix_rows.rs"
[[bench]]
name = "fleet_boot"
path = "benches/fleet_boot.rs"
harness = false
[dependencies.bollard]
version = "0.20"
optional = true
[dependencies.bytes]
version = "1"
optional = true
[dependencies.fatfs]
version = "0.3"
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.gatling]
version = "0.1.9"
package = "rotaryengine"
[dependencies.libcontainer]
version = "0.6"
features = [
"v2",
"systemd",
]
optional = true
default-features = false
[dependencies.nornir-testmatrix]
version = "0.2"
optional = true
default-features = false
[dependencies.rcgen]
version = "0.13"
features = [
"pem",
"ring",
]
optional = true
default-features = false
[dependencies.rustix]
version = "1"
features = ["process"]
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
"logging",
]
optional = true
default-features = false
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.tar]
version = "0.4"
optional = true
[dependencies.tokio]
version = "1"
features = ["rt-multi-thread"]
optional = true
[dependencies.tunnr-vm]
version = "0.1"
optional = true
[dependencies.ureq]
version = "3"
features = [
"rustls",
"json",
"gzip",
]
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.5"
default-features = false
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.sha2]
version = "0.10"
[dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = ["env-filter"]
[dev-dependencies.ureq]
version = "3"
features = [
"rustls",
"json",
"gzip",
]
default-features = false