Charliecloud vs crun
Charliecloud
charliecloud.iocrun
github.comSide by side
| Figure | Charliecloud | crun |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Container Engines | 7.9 (#10) | 8.5 (#5) |
| Spec score · Container Runtime Software | 8.0 (#12) | 8.6 (#3) |
| Purpose | Charliecloud is a lightweight, fully unprivileged, open source container implementation for high performance computing applications. | crun is a fast, low-memory-footprint OCI container runtime written in C. |
Plans
In their own words
Charliecloud
Charliecloud is free, open-source container software for high-performance computing on Linux. It runs containers without privileged operations or daemons by using Linux user namespaces, with minimal configuration changes on computing-center resources. Users can build images, push and pull them to registries, and use accelerators such as GPUs. Its layer-free build cache is based on Git rather than union-mount filesystems and tarballs, and Dockerfiles are parsed with a formal grammar. The ch-image tool supports registry authentication and registries including GitLab Container Registry. At runtime, ch-run can inject host resources through the Container Device Interface, including NVIDIA GPUs and Cray networking. Installation is available from a release tarball, Git checkout, Spack, or Fedora/EPEL. Charliecloud requires Linux user namespaces and has been run on x86-64, ARM, and Power; current testing covers x86_64 and ARM. It is distributed under Apache License, Version 2.0. The project supports only the current release and provides no internal security boundary.
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.