Automic VaultAutomic Vault

brew

Install cargo-expand with Homebrew, apk, Nix, pacman

Show what Rust code looks like with macros expanded. Version 1.0.123 via Homebrew; verified 2026-06-16.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install cargo-expand

local Homebrew formula metadata

Linux

Alpine Linux apkverified · 92%
sudo apk add cargo-expand

Alpine Linux edge package indexes · cargo-expand · source: dl-cdn.alpinelinux.org

Nixverified · 92%
nix profile install nixpkgs#cargo-expand

nixpkgs package indexes · pkgs/by-name/ca/cargo-expand/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S cargo-expand

Arch Linux sync databases · cargo-expand · source: geo.mirror.pkgbuild.com

overview

Package summary

Show what Rust code looks like with macros expanded

Commands and aliases

  • cargo-expand

history

Project history and usage

cargo-expand is the standard Rust developer tool for seeing macro-expanded code from a Cargo project. It wraps compiler expansion output in an ergonomic Cargo subcommand and formats the result for human inspection.

Project history

The GitHub repository and crates.io crate were both created in June 2016. The README describes cargo-expand as a wrapper around `cargo rustc --profile=check -- -Zunpretty=expanded`, printing the result of macro expansion and derive expansion for the current crate.

The project was created by David Tolnay, whose broader Rust tooling ecosystem includes heavily used macro and parsing crates. cargo-expand became especially useful as Rust derive macros, procedural macros, and macro-heavy libraries became common in everyday Rust code.

The README includes an explicit disclaimer that macro expansion to text is lossy and intended as a debugging aid, not a promise that the printed code can be compiled or behaves exactly like the original.

Adoption history

cargo-expand is widely adopted: it is packaged by Homebrew, Nix, Arch Linux, and Alpine in the supplied facts, and crates.io records millions of downloads. Its GitHub repository also has thousands of stars, strong evidence that it is a mainstream Rust diagnostic tool.

Its adoption tracks the rise of procedural macros and derive-heavy frameworks in Rust. When generated code is hard to reason about, `cargo expand` became the common first tool for understanding what the compiler is seeing.

How it is used

Users run `cargo expand` in a Cargo project to print expanded code. Common variants include expanding a test target, selecting a module or item path, disabling rustfmt with `--ugly`, or using configuration under the `[expand]` section of `$CARGO_HOME/config.toml`.

cargo-expand optionally formats output with rustfmt and can use themes or paging configured in Cargo's user config file, making compiler-oriented output easier to read in terminals.

Why package nerds care

cargo-expand matters because macro expansion is one of Rust packaging's hidden dependency surfaces: derives and procedural macros can add trait impls, bounds, helper items, and code paths that are invisible in source form. Seeing that generated code helps maintainers debug builds, features, and public API behavior.

It is also a classic Cargo-subcommand success story: a thin, focused wrapper around a compiler capability became the community default because it matched how Rust developers actually inspect package code.

Timeline

  • 2016: dtolnay/cargo-expand GitHub repository created.
  • 2016: cargo-expand crate first published on crates.io.
  • 2026: crates.io metadata shows active releases in the 1.0.x line.

Related projects

  • rustc provides the underlying macro expansion output exposed by cargo-expand.
  • rustfmt is used to make expanded output more readable when installed.
  • syn is referenced in README screenshots and is part of the wider Rust procedural macro tooling ecosystem.

security posture

No protected-tool coverage found yet

No matching local secret-handling manifest was found for cargo-expand. Nucleus package metadata is still published here so future coverage has a stable package URL.

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.

Configuration files

Config paths the tool may read or write during local use.

Unix
$CARGO_HOME/config.toml~/.cargo/config.toml

executables

Installed executables

CommandKindExposureNote
cargo-expandcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version1.0.123
manager updated2026-06-16
local dataok
upstreamcurrent
latest detected1.0.123

https://github.com/dtolnay/cargo-expand

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:cargo-expand
Version1.0.123
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/cargo-expand
Homepagehttps://github.com/dtolnay/cargo-expand
Repositoryhttps://github.com/dtolnay/cargo-expand
Upstream docshttps://github.com/dtolnay/cargo-expand#readme
LicenseApache-2.0 OR MIT
Source archivehttps://github.com/dtolnay/cargo-expand/archive/refs/tags/1.0.123.tar.gz
Last updated2026-06-16T20:12:02Z
Pulseupdated
Build dependenciesrust
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namecargo-expand
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

cargo-expand

nix profile install nixpkgs#cargo-expand
  • normalized package name match
  • Matched by: Cargo Expand
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ca/cargo-expand/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
apk95%

cargo-expand 1.0.122-r0

Cargo subcommand to show result of macro expansion

https://github.com/dtolnay/cargo-expand

sudo apk add cargo-expand
  • License: MIT OR Apache-2.0
  • Architecture: x86_64
  • Source Package: cargo-expand
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Cargo Expand
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: cargo-expand from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

cargo-expand-doc 1.0.122-r0

Cargo subcommand to show result of macro expansion (documentation)

https://github.com/dtolnay/cargo-expand

sudo apk add cargo-expand-doc
  • License: MIT OR Apache-2.0
  • Architecture: x86_64
  • Source Package: cargo-expand
  • normalized package name match
  • Matched by: Cargo Expand
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: cargo-expand-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
pacman95%

cargo-expand 1.0.122-1

Subcommand to show result of macro expansion

https://github.com/dtolnay/cargo-expand

sudo pacman -S cargo-expand
  • License: MIT AND Apache-2.0
  • Architecture: x86_64
  • 3 dependencies
  • normalized package name match
  • Matched by: Cargo Expand
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: cargo-expand from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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