[package]
edition = "2024"
rust-version = "1.89"
name = "hyperlight-host"
version = "0.15.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
A lightweight Virtual Machine Manager that can be hosted in an application to safely
run untrusted or code within a VM partition with very low latency and overhead.
"""
homepage = "https://github.com/hyperlight-dev/hyperlight"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/hyperlight-dev/hyperlight"
resolver = "2"
[features]
build-metadata = ["dep:built"]
crashdump = [
"dep:chrono",
"dep:elfcore",
]
default = [
"kvm",
"mshv3",
"build-metadata",
]
executable_heap = []
function_call_metrics = []
fuzzing = ["hyperlight-common/fuzzing"]
gdb = [
"dep:gdbstub",
"dep:gdbstub_arch",
]
guest-counter = ["hyperlight-common/guest-counter"]
hw-interrupts = []
i686-guest = ["hyperlight-common/i686-guest"]
kvm = [
"dep:kvm-bindings",
"dep:kvm-ioctls",
]
mem_profile = [
"trace_guest",
"dep:framehop",
"dep:fallible-iterator",
"hyperlight-common/mem_profile",
]
mshv3 = [
"dep:mshv-bindings",
"dep:mshv-ioctls",
]
nanvix-unstable = [
"i686-guest",
"hyperlight-common/nanvix-unstable",
]
print_debug = []
trace_guest = [
"dep:opentelemetry",
"dep:tracing-opentelemetry",
"dep:hyperlight-guest-tracing",
"hyperlight-common/trace_guest",
]
[lib]
name = "hyperlight_host"
path = "src/lib.rs"
bench = false
[[example]]
name = "crashdump"
path = "examples/crashdump/main.rs"
[[example]]
name = "func_ctx"
path = "examples/func_ctx/main.rs"
[[example]]
name = "guest-debugging"
path = "examples/guest-debugging/main.rs"
[[example]]
name = "hello-world"
path = "examples/hello-world/main.rs"
[[example]]
name = "logging"
path = "examples/logging/main.rs"
[[example]]
name = "map-file-cow-test"
path = "examples/map-file-cow-test/main.rs"
[[example]]
name = "metrics"
path = "examples/metrics/main.rs"
[[example]]
name = "tracing"
path = "examples/tracing/main.rs"
[[example]]
name = "tracing-chrome"
path = "examples/tracing-chrome/main.rs"
[[example]]
name = "tracing-otlp"
path = "examples/tracing-otlp/main.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "sandbox_host_tests"
path = "tests/sandbox_host_tests.rs"
[[test]]
name = "wit_test"
path = "tests/wit_test.rs"
[[bench]]
name = "benchmarks"
path = "benches/benchmarks.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.bitflags]
version = "2.11.1"
[dependencies.blake3]
version = "1.8.5"
[dependencies.cfg-if]
version = "1.0.4"
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.crossbeam-channel]
version = "0.5.15"
[dependencies.elfcore]
version = "2.0"
optional = true
[dependencies.fallible-iterator]
version = "0.3.0"
optional = true
[dependencies.flatbuffers]
version = "25.12.19"
[dependencies.framehop]
version = "0.16.0"
optional = true
[dependencies.gdbstub]
version = "0.7.10"
optional = true
[dependencies.gdbstub_arch]
version = "0.3.3"
optional = true
[dependencies.goblin]
version = "0.10"
features = [
"std",
"elf32",
"elf64",
"endian_fd",
]
default-features = false
[dependencies.hyperlight-common]
version = "0.15.0"
features = ["std"]
default-features = true
[dependencies.hyperlight-guest-tracing]
version = "0.15.0"
optional = true
default-features = true
[dependencies.libc]
version = "0.2.186"
[dependencies.log]
version = "0.4.29"
[dependencies.metrics]
version = "0.24.5"
[dependencies.opentelemetry]
version = "0.31.0"
optional = true
[dependencies.page_size]
version = "0.6.0"
[dependencies.rand]
version = "0.10"
[dependencies.serde_json]
version = "1.0"
[dependencies.termcolor]
version = "1.2.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tracing]
version = "0.1.44"
features = ["log"]
[dependencies.tracing-core]
version = "0.1.36"
[dependencies.tracing-log]
version = "0.2.0"
[dependencies.tracing-opentelemetry]
version = "0.32.1"
optional = true
[dependencies.uuid]
version = "1.23.1"
features = ["v4"]
[dependencies.vmm-sys-util]
version = "0.15.0"
[dev-dependencies.criterion]
version = "0.8.2"
[dev-dependencies.crossbeam-queue]
version = "0.3.12"
[dev-dependencies.env_logger]
version = "0.11.10"
[dev-dependencies.hyperlight-component-macro]
version = "0.15.0"
default-features = false
[dev-dependencies.iced-x86]
version = "1.21"
features = [
"std",
"code_asm",
]
default-features = false
[dev-dependencies.metrics-exporter-prometheus]
version = "0.18.3"
default-features = false
[dev-dependencies.metrics-util]
version = "0.20.3"
[dev-dependencies.opentelemetry]
version = "0.31.0"
[dev-dependencies.opentelemetry-otlp]
version = "0.31.1"
features = [
"http-proto",
"reqwest-blocking-client",
"grpc-tonic",
]
default-features = false
[dev-dependencies.opentelemetry-semantic-conventions]
version = "0.31"
[dev-dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["rt-tokio"]
[dev-dependencies.proptest]
version = "1.11.0"
[dev-dependencies.serde]
version = "1.0"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.serial_test]
version = "3.4.0"
[dev-dependencies.signal-hook-registry]
version = "1.4.8"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.tokio]
version = "1.52.2"
features = ["full"]
[dev-dependencies.tracing]
version = "0.1.44"
[dev-dependencies.tracing-chrome]
version = "0.7.2"
[dev-dependencies.tracing-forest]
version = "0.3.1"
features = [
"uuid",
"chrono",
"smallvec",
"serde",
"env-filter",
]
[dev-dependencies.tracing-opentelemetry]
version = "0.32.1"
[dev-dependencies.tracing-serde]
version = "0.2.0"
[dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"std",
"env-filter",
]
[dev-dependencies.uuid]
version = "1.23.1"
features = ["v4"]
[build-dependencies.anyhow]
version = "1.0.102"
[build-dependencies.built]
version = "0.8.0"
features = [
"chrono",
"git2",
]
optional = true
[build-dependencies.cfg_aliases]
version = "0.2.1"
[target."cfg(unix)".dependencies.kvm-bindings]
version = "0.14"
features = ["fam-wrappers"]
optional = true
[target."cfg(unix)".dependencies.kvm-ioctls]
version = "0.24"
optional = true
[target."cfg(unix)".dependencies.mshv-bindings]
version = "0.6"
optional = true
[target."cfg(unix)".dependencies.mshv-ioctls]
version = "0.6"
optional = true
[target."cfg(unix)".dev-dependencies.proc-maps]
version = "0.4.0"
[target."cfg(windows)".dependencies.lazy_static]
version = "1.4.0"
[target."cfg(windows)".dependencies.rust-embed]
version = "8.11.0"
features = [
"debug-embed",
"include-exclude",
"interpolate-folder-path",
]
[target."cfg(windows)".dependencies.windows]
version = "0.62"
features = [
"Win32_Foundation",
"Win32_System_LibraryLoader",
"Win32_System_Threading",
"Win32_System_JobObjects",
"Win32_Security",
"Win32_System_Diagnostics_Debug",
"Win32_System_Hypervisor",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Threading",
"Win32_System_JobObjects",
"Win32_System_SystemServices",
]
[target."cfg(windows)".dependencies.windows-result]
version = "0.4"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = ["Win32"]
[target."cfg(windows)".dependencies.windows-version]
version = "0.1"
[target."cfg(windows)".dev-dependencies.windows]
version = "0.62"
features = ["Win32_System_Diagnostics_ToolHelp"]
[lints.rust]
unsafe_op_in_unsafe_fn = "deny"