{"slug": "crun", "name": "crun", "category": "infra", "category_name": "Infrastructure and DevOps", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.827, "rising": 1.67, "first": "2025-11-28", "latest": "2026-10-23", "why": "crun is the podman related project written in c, which is more efficient than the go based runc.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 0, "compare": 0, "warn": 0}, "spark": [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2], "listed": true, "loved": [], "caveat": "", "short_quote": "crun is the podman related project written in c, which is more efficient than the go based runc.", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://github.com/containers/crun", "pricing": "", "aliases": ["crun"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 803408800, "item_id": 50213050, "url": "https://news.ycombinator.com/item?id=50213050", "by": "80fj0348i", "date": "2026-10-23", "stance": "recommend", "quote": "I've used crun without root for a lot of practical use cases", "excerpt": "I've used crun without root for a lot of practical use cases, if you are only doing limited use of the network and are careful with volume mounts it works pretty well. Podman also has a fully rootless mode which can work for many uses: https://github.com/podman-container-tools/podman/blob/main/docs/tutorials/rootless_tutorial.md", "context": "", "use_case": "Rootless containers", "switched_from": "", "story": "Docker is weird"}, {"id": 803261504, "item_id": 50203844, "url": "https://news.ycombinator.com/item?id=50203844", "by": "schmichael", "date": "2026-10-23", "stance": "recommend", "quote": "crun has just proven good enough that AFAIK no one has RIIR.", "excerpt": "> Go is kind of a terrible language for a container runtime I love Go and use it for everything I can but will absolutely concede this point. It's clearly possible to write the most successful container runtimes on earth in Go, but you absolutely have to fight the language/runtime sometimes. Since containers are based on processes, handing off a container spec to a minimal rust runtime seems like what we should all b", "context": "", "use_case": "container runtime", "switched_from": "", "story": "Docker is weird"}, {"id": 747814657, "item_id": 46738416, "url": "https://news.ycombinator.com/item?id=46738416", "by": "nyrikki", "date": "2026-01-23", "stance": "recommend", "quote": "crun is the podman related project written in c, which is more efficient than the go based runc.", "excerpt": "OCI Container Runtimes like OCI's runc are \"container runtimes\", so the runtime spec[2] Basically, docker started using lxc, but wanted a go native option, and wrote runc. If you look at [0] you can see how it actually instantiates the container. Here is a random blog that describes it fairly well [1] crun is the podman related project written in c, which is more efficient than the go based runc. You can try this eve", "context": "", "use_case": "", "switched_from": "", "story": "What Has Docker Become?"}, {"id": 737323298, "item_id": 46082706, "url": "https://news.ycombinator.com/item?id=46082706", "by": "nyrikki", "date": "2025-11-28", "stance": "recommend", "quote": "or use a cri like crun or use podman.", "excerpt": "You seem to have a misunderstanding of what namespaces accomplished on plan9, or that it was extending Unix concepts and assembling them in another way. As someone who actually ran plan9 over 30 years ago I ensure that if you go back and look at it, the namespaces were intended to abstract away the hardware limitations of the time, to build distributed execution contexts of a large assembly of limited resources. And ", "context": "", "use_case": "", "switched_from": "", "story": "GitLab discovers widespread NPM supply chain attack"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["rootless containers", "container runtime"], "compared": [{"slug": "podman", "name": "Podman", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50202681", "title": "Docker is weird", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46731748", "title": "What Has Docker Become?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46070203", "title": "GitLab discovers widespread NPM supply chain attack", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {"recommend": 2}}, "quotes": [{"id": 803408800, "item_id": 50213050, "url": "https://news.ycombinator.com/item?id=50213050", "by": "80fj0348i", "date": "2026-10-23", "stance": "recommend", "quote": "I've used crun without root for a lot of practical use cases", "excerpt": "I've used crun without root for a lot of practical use cases, if you are only doing limited use of the network and are careful with volume mounts it works pretty well. Podman also has a fully rootless mode which can work for many uses: https://github.com/podman-container-tools/podman/blob/main/docs/tutorials/rootless_tutorial.md", "context": "", "use_case": "Rootless containers", "switched_from": "", "story": "Docker is weird"}, {"id": 803261504, "item_id": 50203844, "url": "https://news.ycombinator.com/item?id=50203844", "by": "schmichael", "date": "2026-10-23", "stance": "recommend", "quote": "crun has just proven good enough that AFAIK no one has RIIR.", "excerpt": "> Go is kind of a terrible language for a container runtime I love Go and use it for everything I can but will absolutely concede this point. It's clearly possible to write the most successful container runtimes on earth in Go, but you absolutely have to fight the language/runtime sometimes. Since containers are based on processes, handing off a container spec to a minimal rust runtime seems like what we should all b", "context": "", "use_case": "container runtime", "switched_from": "", "story": "Docker is weird"}, {"id": 747814657, "item_id": 46738416, "url": "https://news.ycombinator.com/item?id=46738416", "by": "nyrikki", "date": "2026-01-23", "stance": "recommend", "quote": "crun is the podman related project written in c, which is more efficient than the go based runc.", "excerpt": "OCI Container Runtimes like OCI's runc are \"container runtimes\", so the runtime spec[2] Basically, docker started using lxc, but wanted a go native option, and wrote runc. If you look at [0] you can see how it actually instantiates the container. Here is a random blog that describes it fairly well [1] crun is the podman related project written in c, which is more efficient than the go based runc. You can try this eve", "context": "", "use_case": "", "switched_from": "", "story": "What Has Docker Become?"}, {"id": 737323298, "item_id": 46082706, "url": "https://news.ycombinator.com/item?id=46082706", "by": "nyrikki", "date": "2025-11-28", "stance": "recommend", "quote": "or use a cri like crun or use podman.", "excerpt": "You seem to have a misunderstanding of what namespaces accomplished on plan9, or that it was extending Unix concepts and assembling them in another way. As someone who actually ran plan9 over 30 years ago I ensure that if you go back and look at it, the namespaces were intended to abstract away the hardware limitations of the time, to build distributed execution contexts of a large assembly of limited resources. And ", "context": "", "use_case": "", "switched_from": "", "story": "GitLab discovers widespread NPM supply chain attack"}]}