crun
brew install crun
v1.28
GPL-2.0-or-later OR LGPL-2.1-or-later
Fast, low-memory OCI container runtime and C library for running Linux containers per the OCI specification.
Why you might care
crun is significantly faster and leaner than runc (the Go reference implementation), making it ideal for resource-constrained environments like embedded systems and IoT. Unlike runc, it's written entirely in C and can be embedded as a library without spawning external processes, useful for container orchestrators and tools that need tight integration with OCI runtime semantics.
2.1k
30-day installs · #948
13.9k
90-day · #676
49.4k
365-day · #699
4.0k
★ GitHub stars · updated 3d ago
Runtime dependencies
Build dependencies
GitHub topics
containers
iot
iot-cloud
linux
oci
oci-runtime
runc
runtime
wasm-oci
Links
- https://github.com/containers/crun
- GitHub: containers/crun
- Brew formula source: Formula/c/crun.rb
Blurb generated by claude-haiku-4-5 on today.
Raw metadata
{
"aliases": [],
"alternatives": [
"runc",
"cri-o",
"containerd"
],
"build_dependencies": [
"autoconf",
"automake",
"go-md2man",
"libtool",
"pkgconf",
"python@3.14"
],
"categories": [
"container-runtime",
"library"
],
"caveats": null,
"conflicts_with": [],
"dependencies": [
"json-c",
"libcap",
"libseccomp",
"systemd",
"yajl"
],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Fast and lightweight fully featured OCI runtime and C library",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:36:42+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "crun",
"github_default_branch": "main",
"github_last_commit_at": "2026-06-17T09:22:01Z",
"github_readme_excerpt": "\u003cp align=\"center\"\u003e\n \u003cimg src=\"docs/crun.svg\" width=\"450\" height=\"450\"\u003e\n\u003c/p\u003e\n\n[](https://scan.coverity.com/projects/giuseppe-crun)\n[](https://github.com/containers/crun/actions?query=workflow%3ACodeQL)\n\nA fast and low-memory footprint OCI Container Runtime fully written in\nC.\n\ncrun conforms to the OCI Container Runtime specifications\n(\u003chttps://github.com/opencontainers/runtime-spec\u003e).\n\n## Documentation\n\nThe user documentation is available [here](crun.1.md).\n\n## Why another implementation?\n\nWhile most of the tools used in the Linux containers ecosystem are\nwritten in Go, I believe C is a better fit for a lower level tool like a\ncontainer runtime. runc, the most used implementation of the OCI runtime\nspecs written in Go, re-execs itself and use a module written in C for\nsetting up the environment before the container process starts.\n\ncrun aims to be also usable as a library that can be easily included in\nprograms without requiring an external process for managing OCI\ncontainers.\n\n## Performance\n\ncrun is faster than runc and has a much lower memory footprint.\n\nThis is the elapsed time on my machine for running sequentially 100\ncontainers, the containers run `/bin/true`:\n\n| | crun | runc | % |\n| ------------- | ------: | -----: | ------: |\n| 100 /bin/true | 0:01.69 | 0:3.34 | \\-49.4% |\n\ncrun requires fewer resources, so it is also possible to set stricter\nlimits on the memory allowed in the container:\n\n```console\n# podman --runtime /usr/bin/runc run --rm --memory 4M fedora echo it works\nError: container_linux.go:346: starting container process caused \"process_linux.go:327: getting pipe fds for pid 13859 caused \\\"readlink /proc/13859/fd/0: no such file or directory\\\"\": OCI runtime command not found error\n\n# podman --runtime /usr/bin/crun run --rm --memory 512k fedora echo it works\nit works\n```\n\n## Dependenc",
"github_repo": "containers/crun",
"github_stars": 3968,
"github_topics": [
"containers",
"iot",
"iot-cloud",
"linux",
"oci",
"oci-runtime",
"runc",
"runtime",
"wasm-oci"
],
"homepage": "https://github.com/containers/crun",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 2123,
"installs_365d": 49376,
"installs_90d": 13922,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "GPL-2.0-or-later OR LGPL-2.1-or-later",
"llm_generated_at": "2026-06-20T23:48:02+00:00",
"llm_model": "claude-haiku-4-5",
"name": "crun",
"oldnames": [],
"one_liner": "Fast, low-memory OCI container runtime and C library for running Linux containers per the OCI specification.",
"optional_dependencies": [],
"rank_30d": 948,
"rank_365d": 699,
"rank_90d": 676,
"raw_hash": "6144a9440b2b09e4",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/c/crun.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": null,
"version_stable": "1.28",
"versioned_formulae": [],
"why_use_this": "crun is significantly faster and leaner than runc (the Go reference implementation), making it ideal for resource-constrained environments like embedded systems and IoT. Unlike runc, it\u0027s written entirely in C and can be embedded as a library without spawning external processes, useful for container orchestrators and tools that need tight integration with OCI runtime semantics."
}