Prerequisites
- Rust 1.75+ (stable toolchain)
- macOS (Apple Silicon) or Linux (x86_64/ARM64) with KVM
- Python 3.10+ (for Python SDK development)
Quick Start
Makefile Targets
BoxLite uses a Makefile to orchestrate all builds. Below is a complete reference of available targets.| Target | Description |
|---|---|
make setup | Install platform-specific dependencies |
make guest | Cross-compile guest binary (musl static) |
make shim | Build boxlite-shim binary |
make runtime | Build complete BoxLite runtime |
make dev:python | Local Python SDK development |
make dist:python | Build portable Python wheels |
make clean | Clean build artifacts |
Platform Support
- macOS
- Linux (x86_64)
- Linux (ARM64)
| Architecture | Hypervisor |
|---|---|
| ARM64 (Apple Silicon) | Hypervisor.framework |
scripts/setup/macos.sh.Build Scripts
Build scripts are located in thescripts/ directory:
Building Individual Components
Build the guest binary
The guest binary is cross-compiled as a static musl binary:This runs
scripts/build/guest.sh under the hood.Build the shim binary
The shim is the host-side process that manages the VM:This runs
scripts/build/shim.sh.Building Python Wheels
To build distributable Python wheels (for publishing or CI):Cleaning Build Artifacts
Debugging Build Issues
If you encounter build failures, enable debug logging to get more detail:
Common Issues
Rust version too old
Rust version too old
BoxLite requires Rust 1.75 or newer. Check your version with:Update with:
KVM not available (Linux)
KVM not available (Linux)
Verify KVM is accessible:If the device does not exist, enable hardware virtualization in your BIOS/UEFI settings. If it exists but is not accessible, check permissions:Log out and back in for the group change to take effect.
macOS version too old
macOS version too old
BoxLite requires macOS 12 (Monterey) or later for Hypervisor.framework support. Check your version:
Submodule initialization failed
Submodule initialization failed
If submodules fail to initialize, try a clean clone: