Volt VMM (Neutron Stardust): source-available under AGPSL v5.0

KVM-based microVMM for the Volt platform:
- Sub-second VM boot times
- Minimal memory footprint
- Landlock LSM + seccomp security
- Virtio device support
- Custom kernel management

Copyright (c) Armored Gates LLC. All rights reserved.
Licensed under AGPSL v5.0
This commit is contained in:
Karl Clinger
2026-03-21 01:04:35 -05:00
commit 40ed108dd5
143 changed files with 50300 additions and 0 deletions

85
vmm/Cargo.toml Normal file
View File

@@ -0,0 +1,85 @@
[package]
name = "volt-vmm"
version = "0.1.0"
edition = "2021"
authors = ["Volt Contributors"]
description = "A lightweight, secure Virtual Machine Monitor (VMM) built on KVM"
license = "Apache-2.0"
repository = "https://github.com/armoredgate/volt-vmm"
keywords = ["vmm", "kvm", "virtualization", "microvm"]
categories = ["virtualization", "os"]
[dependencies]
# Stellarium CAS storage
stellarium = { path = "../stellarium" }
# KVM interface (rust-vmm)
kvm-ioctls = "0.19"
kvm-bindings = { version = "0.10", features = ["fam-wrappers"] }
# Memory management (rust-vmm)
vm-memory = { version = "0.16", features = ["backend-mmap"] }
# VirtIO (rust-vmm)
virtio-queue = "0.14"
virtio-bindings = "0.2"
# Kernel/initrd loading (rust-vmm)
linux-loader = { version = "0.13", features = ["bzimage", "elf"] }
# Async runtime
tokio = { version = "1", features = ["full"] }
# Configuration
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# CLI
clap = { version = "4", features = ["derive", "env"] }
# Logging/tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Error handling
thiserror = "2"
anyhow = "1"
# HTTP API
axum = "0.8"
tower = "0.5"
tower-http = { version = "0.6", features = ["trace", "cors"] }
# Security (seccomp-bpf filtering)
seccompiler = "0.5"
# Security / sandboxing
landlock = "0.4"
# Additional utilities
crossbeam-channel = "0.5"
libc = "0.2"
nix = { version = "0.29", features = ["fs", "ioctl", "mman", "signal"] }
parking_lot = "0.12"
signal-hook = "0.3"
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
futures = "0.3"
hyper = { version = "1.4", features = ["full"] }
hyper-util = { version = "0.1", features = ["server", "tokio"] }
http-body-util = "0.1"
tokio-util = { version = "0.7", features = ["io"] }
bytes = "1"
getrandom = "0.2"
crc = "3"
# CAS (Content-Addressable Storage) support
sha2 = "0.10"
hex = "0.4"
[dev-dependencies]
tokio-test = "0.4"
tempfile = "3"
[[bin]]
name = "volt-vmm"
path = "src/main.rs"