# Install cargo-chef with Homebrew, apk, Nix

Cargo subcommand to speed up Rust Docker builds using Docker layer caching. Version 0.1.77 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:cargo-chef
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install cargo-chef
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add cargo-chef
```

  Evidence: Alpine Linux edge package indexes: cargo-chef from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#cargo-chef
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ca/cargo-chef/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:cargo-chef
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/cargo-chef>
- **Version:** 0.1.77
- **Source summary:** Cargo subcommand to speed up Rust Docker builds using Docker layer caching
- **Homepage:** <https://github.com/LukeMathWalker/cargo-chef>
- **Repository:** <https://github.com/LukeMathWalker/cargo-chef>
- **Upstream docs:** <https://github.com/LukeMathWalker/cargo-chef#readme>
- **License:** Apache-2.0 OR MIT
- **Source archive:** <https://github.com/LukeMathWalker/cargo-chef/archive/refs/tags/v0.1.77.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cargo-chef (cli)
- cargo-chef (alias)

## Build dependencies

- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.1.77
- Local data: ok
- Upstream repository: https://github.com/LukeMathWalker/cargo-chef
- Upstream latest detected: v0.1.77 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

cargo-chef is a Cargo subcommand for making Rust container builds friendlier to Docker layer caching. It analyzes a project into a dependency recipe, builds that recipe in an earlier image layer, and lets later source-code-only changes reuse the expensive dependency build.

### Project history

The project was created by Luca Palmieri in 2020 and its README says it was initially developed for the deployment chapter of Zero to Production in Rust. The upstream repository describes the command as a way to speed up Rust Docker builds using Docker layer caching.

Its design codified a pattern Rust teams were already hand-rolling in Dockerfiles: copy manifests first, build dependencies, then copy application sources. cargo-chef made that approach workspace-aware and less fragile by generating a recipe from Cargo.toml and Cargo.lock inputs.

### Adoption history

cargo-chef spread through Rust backend and CI workflows because Docker build cache misses are especially painful for projects with large dependency graphs. The project publishes a prebuilt Docker image, and the crate has accumulated millions of crates.io downloads, showing adoption beyond a one-off example tool.

Packaging in Homebrew, apk, and Nix reflects its use by developers who want the subcommand available outside pure cargo-install workflows.

### How it is used

A typical workflow runs `cargo chef prepare --recipe-path recipe.json` after copying the source tree in a planner stage, then `cargo chef cook --release --recipe-path recipe.json` in a builder stage before copying the full application code.

The README emphasizes that the tool is mainly intended for container builds, not normal local development, because it writes the project skeleton needed to cache dependencies.

### Why package nerds care

For package managers, cargo-chef is interesting because it turns Cargo metadata into a build-cache artifact. It is a small CLI, but it sits directly at the intersection of Cargo workspaces, lockfiles, reproducible images, and CI build economics.

It is also a recognizable Rust ecosystem answer to the `requirements.txt`-style dependency layer used in other language containers.

### Timeline

- 2020: GitHub repository created and first crates.io release published.
- 2020: README documents its origin in Zero to Production in Rust.
- 2025-2026: Release stream continues through the 0.1.x series, with crates.io showing more than three million downloads by June 2026.

### Related projects

- Cargo is the package manager and build tool that cargo-chef extends.
- Docker and the official Rust container images are the primary environment targeted by the documented workflow.
- Zero to Production in Rust is the book project that originally motivated the tool.

### Sources

- <https://api.github.com/repos/LukeMathWalker/cargo-chef>
- <https://crates.io/api/v1/crates/cargo-chef>
- <https://github.com/LukeMathWalker/cargo-chef#readme>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** cargo-chef
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - cargo-chef: normalized package name match | nixpkgs package indexes: pkgs/by-name/ca/cargo-chef/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - cargo-chef - 0.1.77-r0: normalized package name match | Alpine Linux edge package indexes: cargo-chef from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A cargo sub-command to build project dependencies for optimal Docker layer caching. | https://github.com/LukeMathWalker/cargo-chef
- apk - cargo-chef-doc - 0.1.77-r0: normalized package name match | Alpine Linux edge package indexes: cargo-chef-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A cargo sub-command to build project dependencies for optimal Docker layer caching. (documentation) | https://github.com/LukeMathWalker/cargo-chef


## Related links

- [Cloud CLI packages](https://www.automicvault.com/pkg/cloud-clis/) - Belongs to a cloud or infrastructure command family.
- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Package publisher tools](https://www.automicvault.com/pkg/package-publishers/) - Belongs to a package publishing or registry command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [cargo-outdated](https://www.automicvault.com/pkg/brew/cargo-outdated/) - Shares av.db curated category or tags: cargo, cli, dependencies, developer-tools, rust.
- [cargo-auditable](https://www.automicvault.com/pkg/brew/cargo-auditable/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-binstall](https://www.automicvault.com/pkg/brew/cargo-binstall/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-binutils](https://www.automicvault.com/pkg/brew/cargo-binutils/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-bloat](https://www.automicvault.com/pkg/brew/cargo-bloat/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-bundle](https://www.automicvault.com/pkg/brew/cargo-bundle/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-c](https://www.automicvault.com/pkg/brew/cargo-c/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-cache](https://www.automicvault.com/pkg/brew/cargo-cache/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-chef](https://www.automicvault.com/pkg/cargo/cargo-chef/) - Same normalized package name exists in another local package ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/cargo-chef.yml](https://github.com/automic-vault/db/blob/main/combined/cargo-chef.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
