Firecracker

Security & Safety 💻 Rust ⚖️ Apache-2.0 🟢 Actively maintained
36.6k stars

Firecracker is an open-source virtual machine monitor (VMM) that uses KVM to create and manage secure, multi-tenant microVMs for container and function workloads. It combines the security of hardware virtualization with the speed and flexibility of containers, designed for serverless operational models. It is ideal for developers building secure, high-density serverless platforms.

✨ Key features

  • Minimalist design reduces memory footprint and attack surface.
  • API endpoint to configure vCPUs, memory, and CPU templates.
  • Add network interfaces, disks, and rate limiters via API.
  • Supports vsock, entropy, pmem devices, and memory hotplugging.
  • Demand fault paging and CPU oversubscription enabled by default.
  • Jailer process for production isolation and privilege dropping.

🎯 Use cases

  • Run container workloads in lightweight microVMs with strong isolation.
  • Build serverless platforms like AWS Lambda or Fargate.
  • Integrate with container runtimes like Kata Containers.
  • Create secure multi-tenant environments for function-as-a-service.

📦 Installation

🧰 Requirements: Requires a Linux host with KVM support and Docker for building from source.

git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"

The binary is placed at build/cargo_target/${toolchain}/debug/firecracker.

🚀 Usage

# After building, start Firecracker with a kernel and rootfs
# Example from docs/getting-started.md (not included in README)
# Refer to the quickstart guide for full instructions.

⚠️ Good to know

The pl031 RTC device on aarch64 does not support interrupts, so guest programs using RTC alarms (e.g., hwclock) will not work.

❓ FAQ

What is Firecracker?

Firecracker is an open-source VMM that creates and manages microVMs for secure, multi-tenant container and function workloads.

How do I build Firecracker from source?

Clone the repository, run tools/devtool build, and the binary will be in build/cargo_target/${toolchain}/debug/firecracker.

What are the main features?

It provides an API to configure vCPUs, memory, network, disks, and devices, plus built-in security features like seccomp filters and a Jailer.

What are the known limitations?

On aarch64, the pl031 RTC device does not support interrupts, affecting guest programs that use RTC alarms.

📊 Repository

Stars★ 36,552
Forks🍴 2,600
Open issues🐛 103
Last commit🕒 Sep 4, 2026
Created📅 Oct 2017
Language💻 Rust
License⚖️ Apache-2.0

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.