Kuasar multi-sandbox container runtime guide
A multi-sandbox container runtime that provides cloud-native, all-scenario multiple sandbox container solutions.
At a glance
- What is it?
- Kuasar is a Rust container runtime built around containerd's Sandbox API. It supports MicroVM, Wasm, Quark app-kernel, and runC backends, but host virtualization and setup constraints affect adoption.
- Who is it for?
- Engineers should evaluate Kuasar when one containerd host must coordinate several isolation models or when container startup overhead matters. It is a poor first choice for an unvirtualized MicroVM host, a team needing only conventional runC containers, or an operator requiring documented rollback and a complete production setup workflow.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 156 days ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.
Star history
- kuasar-io/kuasar1,458 ★ · +2
| Repository | 2026-10-16 | 2026-11-07 |
|---|---|---|
| kuasar-io/kuasar | 1.5k | 1.5k |
2 Stars in the last 22 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
Kuasar's containerd Sandbox API scope
Kuasar addresses a specific architectural problem: container isolation is no longer represented only by a conventional Linux container runtime. The project treats the Sandbox API as the common control surface, while different sandboxer implementations handle workloads that need different forms of isolation. That is useful for platform engineers running mixed serverless or multi-tenant workloads on a shared node. Instead of choosing one isolation model for every process, an operator can select a MicroVM, WebAssembly runtime, application kernel, or runC according to application requirements.
The intended users are infrastructure teams, container-runtime integrators, and developers working around containerd rather than developers looking for an application build tool. Kuasar is written in Rust and organized as a Cargo workspace. Its repository includes separate components under `vmm/`, `wasm/`, `quark/`, `runc/`, and `shim/`, plus `tools/kuasar-ctl`. It also contains tests, scripts, documentation, and workload examples. The repository layout places it closer to systems infrastructure than to a standalone container SDK.
Its central design choice is operational multiplicity. Kuasar can place several sandbox techniques on one node, but that does not make their requirements interchangeable. A Cloud Hypervisor workload needs virtualization, while a Wasm workload needs a compatible WebAssembly runtime. A runC deployment carries different assumptions from a guest kernel. The abstraction simplifies control-plane integration, but backend-specific host preparation remains part of adoption. A team choosing Kuasar is accepting a common management model alongside several different execution environments.
Containerd plugin and process architecture in Kuasar
Kuasar sandboxers are external containerd plugins built around the sandbox plugin mechanism discussed for containerd 2.0. Each general sandboxer has two responsibilities. One module implements the Sandbox API and manages the sandbox lifecycle. The other implements the Task API and performs operations associated with containers inside that sandbox. This split keeps container lifecycle management separate from workload task execution while allowing different isolation implementations to sit behind a common API.
For MicroVM workloads, `vmm-sandboxer` launches a VM through an open-source virtual machine monitor and calls its APIs. The `vmm-task` binary runs as the init process inside the VM and starts container processes there. Container I/O can cross the boundary through `vsock` or Unix domain sockets. This arrangement avoids placing the conventional host-side shim process in the MicroVM path, according to the architecture described in the README.
The repository Makefile identifies concrete outputs for each backend, including `bin/vmm-sandboxer`, `bin/vmm-task`, `bin/wasm-sandboxer`, `bin/quark-sandboxer`, and `bin/runc-sandboxer`. It also defines `bin/kuasar-ctl` and guest artifacts such as `bin/kuasar.img`, `bin/kuasar.initrd`, and `bin/vmlinux.bin`. The Cargo workspace release profile favors smaller artifacts through `opt-level = "z"`, enables LTO, uses one codegen unit, strips debug information, and aborts on panic. These settings describe a systems runtime, not a library intended to be embedded casually into every application.
MicroVM, Wasm, Quark, and runC backend choices
Kuasar's supported backends differ mainly in where and how the workload is isolated. The README lists Cloud Hypervisor, QEMU, and StratoVirt as supported MicroVM VMMs. Firecracker is marked planned in 2025, so it should not be treated as an available backend on the basis of that table. Every listed MicroVM implementation requires a virtualization-enabled node. `vmm-task` is built for a Linux `musl` target, and the Makefile defaults to `x86_64` with `KERNEL_VERSION` set to `6.12.8`.
The Wasm sandboxer supports WasmEdge and Wasmtime. This route is intended for workloads that can execute through WebAssembly and should not be conflated with a full Linux VM. The Makefile defaults `WASM_RUNTIME` to `wasmedge`, while the repository provides `examples/run_example_wasm_container.sh`. The README does not give that script's arguments or expected output, so this article does not claim what image it starts or what result it produces.
The App Kernel sandboxer uses Quark. This backend targets an application-kernel isolation model rather than a conventional kernel namespace arrangement. The runC backend is listed as supported and represents a more familiar Linux container option. Kuasar therefore offers an alternative to maintaining separate control systems for different workloads, but the application must still fit the selected model. Asking a full Linux distribution workload to behave like a Wasm module, or selecting a MicroVM backend on a host without virtualization, creates the wrong fit.
Building Kuasar's Rust and guest artifacts
The repository supports stable Rust and provides a Make-based build for its principal components. The default `all` target in the Makefile includes `vmm`, `quark`, `wasm`, and `bin/kuasar-ctl`.
The `vmm-sandboxer` target changes into `vmm/sandbox`, invokes Cargo with the selected VMM binary and feature setting, then copies the executable to `bin/vmm-sandboxer`. The selected VMM comes from `HYPERVISOR`, whose default is `cloud_hypervisor`. The `vmm-task` target changes into `vmm/task`, uses the `ARCH` variable to select the Rust target, and copies the resulting executable to `bin/vmm-task`. These are Make target names and recipes rather than a complete first-use workflow.
Guest setup is separate. The `bin/vmlinux.bin` target invokes a kernel build script for the selected VMM and `KERNEL_VERSION`. The image and initrd targets call the VMM image build script with `GUESTOS_IMAGE`. Compiling the Rust binaries does not itself create a guest kernel, root image, initrd, registered containerd plugin, or running sandbox. A reader should follow the complete Quick Start in the repository README rather than infer missing service configuration from the Make target names.
Kuasar installation paths and configuration boundaries
The Makefile defines installation paths, but the documented text does not show the recipe for its `install` target. Its default destination is `/`, the Kuasar data directory is `/var/lib/kuasar`, binaries belong in `/usr/local/bin`, systemd service files belong in `/usr/lib/systemd/system`, and configuration belongs in `/etc/sysconfig`. RPM-formatted installation is indicated through the `DEST_DIR` variable. These are declarations from the Makefile, not confirmation that a completed installation places every artifact in those directories.
Several build switches affect the artifact set. `HYPERVISOR` selects a MicroVM backend, `GUESTOS_IMAGE` selects the guest OS image, `WASM_RUNTIME` selects a Wasm runtime, and `KERNEL_VERSION` supplies the kernel version to the kernel build script. `ENABLE_YOUKI` can set `RUNC_FEATURES` and `VMM_TASK_FEATURES` to `youki`. These are build-time choices. The README does not document runtime service flags, containerd plugin registration, rollback, or migration between backends.
Because the complete Quick Start is not included, the first real use cannot be reproduced without guessing a service name, configuration path, or containerd flag. Before running an installation, inspect the complete `README.md`, the `Makefile` install recipes, and the scripts under `hack/` and `scripts/`. The repository's `examples/` directory is also relevant because it contains `run_example_container.sh`, `run_example_wasm_container.sh`, and a snapshot-and-restore guide. Their file contents should be consulted rather than inferred from their names.
Kuasar performance claims and workload overhead
Kuasar makes a performance argument based on its process model. The README says it removes pause containers and replaces individual shim processes with one resident sandboxer process, changing the management relationship from 1:1 to 1:N. It reports sandbox startup at roughly two times the speed of its comparison and a 99 percent reduction in management resource overhead. These are repository benchmark claims, and the README links readers to a Performance section for further detail. That section is not included here.
The optimization has a clear architectural scope. Fewer host-side management processes and no pause container can reduce overhead when many sandboxes share a node. MicroVM backends also avoid the conventional host shim process described in the README. That benefit does not erase guest startup, image handling, virtualization, networking, or workload preparation costs. The available text does not identify the host hardware, image sizes, runtime versions, workload density, latency distribution, or comparison configuration behind the headline figures.
For adoption, engineers should measure the exact combination they intend to deploy. A Cloud Hypervisor result cannot stand in for WasmEdge, Quark, or runC. Dense multi-tenant placement, slow-starting images, and workloads with different kernel expectations may produce different operational profiles. The documented design supports evaluating the cost of per-workload shim processes and pause containers. It does not support treating the stated percentages as a general service-level objective for every backend.
Kuasar limitations, maintenance, and license review
The clearest limitation is backend qualification. MicroVM operation fails on a node without virtualization, as the README states directly. Wasm workloads must fit a WebAssembly runtime. Quark depends on an application-kernel model. Even with a unified management API, one node can still carry several unrelated host prerequisites. Kuasar reduces runtime diversity at the management layer, not at the kernel, hypervisor, image, or runtime layer.
Operational documentation is incomplete for a production assessment. The README does not document service hardening, upgrade rollback, version compatibility, observability, failure recovery, or a complete first-container workflow. These omissions matter because container infrastructure carries host-level consequences. The repository is not archived, and its last push was on 2026-06-05. Release `v1.1.0` was also published on 2026-06-05, after `v1.0.1` and `v1.0.1-alpha1` on 2025-03-21. The time between releases can indicate a deliberate release cadence, so operators should not infer a support policy from release frequency alone.
Kuasar uses the Apache-2.0 license. That license includes permissions and conditions that an organization should review for its intended distribution model. This article does not provide legal advice or assess an individual compliance program. The Cargo workspace also patches `ttrpc` with the Kuasar branch of `kuasar-io/ttrpc-rust`. A reproducible build therefore depends on the external Git dependency as well as the repository contents. Preserve `Cargo.lock`, inspect dependency licenses, and verify that the dependency revision is available before treating a source build as reproducible.
Kuasar versus separate workload-specific runtimes
A real alternative is to operate separate container runtimes or VM platforms according to workload class, with a higher-level service deciding where each workload runs. That approach avoids placing heterogeneous isolation backends behind Kuasar's Sandbox API, but it introduces more control-plane and operational concepts. Kuasar instead exposes Cloud Hypervisor, QEMU, StratoVirt, WasmEdge, Wasmtime, Quark, and runC as sandboxer choices within one framework and uses containerd's APIs for lifecycle and task operations.
The difference is operational coupling, not merely implementation language. A conventional runC setup already has a direct path for standard Linux containers and a smaller set of host prerequisites. Choosing Kuasar is more defensible when colocation and backend selection are explicit requirements, or when eliminating the pause-container and per-shim model matters. For a host running only ordinary runC workloads, Kuasar may add components without delivering the mixed-sandbox value it is designed around.
The choice also changes failure domains. MicroVM tasks execute inside guest VMs, with I/O carried through `vsock` or Unix domain sockets. Wasm execution depends on WasmEdge or Wasmtime. Quark uses an application kernel. runC remains the Linux runtime route. A unified API improves management consistency, but incident response still needs backend-specific knowledge. Platform teams should decide whether one Rust runtime and Sandbox API reduce complexity enough to offset operating several host prerequisites and execution models.
Editorial conclusion
Engineers should evaluate Kuasar when one containerd host must coordinate several isolation models or when container startup overhead matters. It is a poor first choice for an unvirtualized MicroVM host, a team needing only conventional runC containers, or an operator requiring documented rollback and a complete production setup workflow. Before adoption, verify host support for the selected backend, inspect the Makefile's installation paths, and confirm containerd integration against the complete Quick Start.
Frequently asked questions
Which sandbox backends does Kuasar support?
The README lists Cloud Hypervisor, QEMU, and StratoVirt for MicroVM; WasmEdge and Wasmtime for Wasm; Quark for app-kernel sandboxes; and runC for conventional container sandboxes. Firecracker is marked planned in 2025 rather than supported.
Does Kuasar require a virtualization-enabled host?
Yes for the MicroVM backends. The README states that all MicroVM VMMs require a virtualization-enabled node, otherwise they cannot work. The Wasm, Quark, and runC backends have separate prerequisites that should be checked.
How does Kuasar build its backend components?
The Makefile provides `all` as the default build target and separate targets for VMM, Quark, Wasm, runC, and `kuasar-ctl` artifacts. The complete README Quick Start is required to reproduce the remaining setup because those commands are not included.
What license does Kuasar use?
The repository uses Apache-2.0. Its Cargo workspace also patches `ttrpc` with the Kuasar branch of `kuasar-io/ttrpc-rust`, which is relevant when reviewing and reproducing dependency builds.
Does Kuasar remove pause containers and per-container shim processes?
The README says Kuasar removes pause containers and replaces shim processes with one resident sandboxer process, producing a 1:N management model. It also reports lower management overhead and faster sandbox startup, while linking to a Performance section for further detail.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kuasar-io-kuasar)Star history chart for your README
[](https://hysenlabs.com/projects/kuasar-io-kuasar)Was this useful?