Apple container vs crun
Apple container
github.comcrun
github.comSide by side
| Figure | Apple container | crun |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| macOS | Yes | — |
| Linux | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Container Engines | 8.0 (#8) | 8.5 (#5) |
| Spec score · Container Runtime Software | 8.1 (#10) | 8.6 (#3) |
| Purpose | Apple container creates and runs Linux containers as lightweight virtual machines on a Mac. | crun is a fast, low-memory-footprint OCI container runtime written in C. |
Plans
In their own words
Apple container
Apple container creates and runs Linux containers as lightweight virtual machines on a Mac. Written in Swift and optimized for Apple silicon, it gives each container its own lightweight virtual machine with core utilities and libraries. Host data is shared by mounting only the data needed inside each virtual machine. The tool consumes and produces OCI-compatible images that can be pulled from and pushed to standard registries. Documented features include CPU and memory limits, bind mounts, named volumes, tmpfs, DNS-based names, port forwarding, and isolated networks. It can run local single-node or multi-node Kubernetes clusters for development and testing, and documentation covers building, running, and publishing images for Apple silicon and x86-64. Integrations include macOS Virtualization, vmnet, XPC, launchd, Keychain services, and unified logging. Apple container is free, Apache-2.0 licensed, and supported on macOS 26, but requires Apple silicon. The project is under active development.
crun
crun is a free, self-hosted OCI container runtime for Linux, written in C. It conforms to the OCI Container Runtime specifications and provides CLI operations for creating, running, executing commands in, listing, pausing, resuming, updating, checkpointing and restoring containers. It can generate a configuration for unprivileged use and creates a user namespace when run by a non-root user. The project documents integration with Podman, an Ansible role for installing a statically linked binary and a Lua binding. Build instructions cover Fedora, RHEL/CentOS Stream 9 and 10, Ubuntu, Alpine and openSUSE Tumbleweed; release binaries are listed for Linux amd64 and arm64, including variants without systemd. Official release artifacts are signed, with GPG verification commands provided. The project reports a benchmark of 100 sequential `/bin/true` containers completing in 1.69 seconds with crun versus 3.34 seconds with runc on the author's machine. The manual marks cgroup v1 support as deprecated. Regular patch releases target the latest version; fixes for earlier versions are best effort and not guaranteed.