HaLVM is a Haskell-based unikernel system that lets you write entire virtual machines in Haskell and run them directly on a hypervisor, traditionally Xen. Instead of deploying a full operating system, you compile a Haskell program into a tiny image that boots as its own VM, which reduces the attack surface and startup time. The project adapts GHC and the Haskell runtime to a minimal environment, providing the I/O, networking, and memory facilities necessary for standalone services. Its design encourages highly isolated services—each VM does one job—making it attractive for security-sensitive components and research on microservice-style architectures. Developers get to keep Haskell’s strong typing, concurrency abstractions, and functional style while targeting bare virtual hardware. Although device support is intentionally narrow compared to general-purpose OSes, the trade-off is predictability and very small, auditable deployments.
Features
- Execution of Haskell programs directly on Xen hypervisor (no host OS)
- Integration with GHC toolchain and Cabal for library use
- Lightweight Xen domains optimized for single-purpose workloads
- Support for network, I/O, and system services in Haskell
- Examples and sample projects bundled with the distribution
- Ability to run pure Haskell libraries with minimal adaptation