# 使用 Homebrew, apk, Nix, pacman 安装 cargo-expand

查看 cargo-expand 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

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

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install cargo-expand
```

  证据: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add cargo-expand
```

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

- Nix (92%):

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

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

- pacman (92%):

```sh
sudo pacman -S cargo-expand
```

  证据: Arch Linux sync databases: cargo-expand from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## 软件包事实

- **软件包键:** brew:cargo-expand
- **软件包管理器:** Homebrew
- **软件包管理器页面:** <https://formulae.brew.sh/formula/cargo-expand>
- **版本:** 1.0.123
- **来源摘要:** Show what Rust code looks like with macros expanded
- **主页:** <https://github.com/dtolnay/cargo-expand>
- **仓库:** <https://github.com/dtolnay/cargo-expand>
- **上游文档:** <https://github.com/dtolnay/cargo-expand#readme>
- **许可证:** Apache-2.0 OR MIT
- **源码归档:** <https://github.com/dtolnay/cargo-expand/archive/refs/tags/1.0.123.tar.gz>
- **最后更新:** 2026-06-16T20:12:02Z
- **已生成:** 2026-07-08T07:18:31+00:00

## 可执行文件

- cargo-expand (cli)
- cargo-expand (别名)

## 构建依赖

- rust

## 安装行为

- post-install 钩子: 未定义
- Bottle: 可用 于 arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## 版本和新鲜度

- 页面生成时间: 2026-07-08
- 管理器版本: 1.0.123
- 管理器更新时间: 2026-06-16
- 本地数据: OK
- 上游仓库: https://github.com/dtolnay/cargo-expand
- 检测到的最新版本: 1.0.123 (当前)
## 项目历史与用法

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.

### 项目历史

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.

### 采用历史

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.

### 使用方式

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.

### 为什么软件包爱好者会关心

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.

### 时间线

- 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.

### 来源

- <https://api.github.com/repos/dtolnay/cargo-expand>
- <https://crates.io/api/v1/crates/cargo-expand>
- <https://github.com/dtolnay/cargo-expand#readme>
- <https://raw.githubusercontent.com/dtolnay/cargo-expand/master/README.md>
- input.source_facts.package-manager


## 安全说明

没有找到 cargo-expand 的匹配本地密钥处理 manifest。Nucleus 软件包元数据仍在此发布，以便未来覆盖拥有稳定的软件包 URL。



## 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

- Unix: $CARGO_HOME/config.toml, ~/.cargo/config.toml
## 源数据库详情

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

## 其他软件包管理器记录

- Nix - cargo-expand: normalized package name match | nixpkgs package indexes: pkgs/by-name/ca/cargo-expand/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - cargo-expand - 1.0.122-r0: normalized package name match | Alpine Linux edge package indexes: cargo-expand from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Cargo subcommand to show result of macro expansion | https://github.com/dtolnay/cargo-expand
- apk - cargo-expand-doc - 1.0.122-r0: normalized package name match | Alpine Linux edge package indexes: cargo-expand-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Cargo subcommand to show result of macro expansion (documentation) | https://github.com/dtolnay/cargo-expand
- pacman - cargo-expand - 1.0.122-1: normalized package name match | Arch Linux sync databases: cargo-expand from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Subcommand to show result of macro expansion | https://github.com/dtolnay/cargo-expand


## 相关链接

- [Source-control packages](https://www.automicvault.com/zh-hans/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Package publisher tools](https://www.automicvault.com/zh-hans/pkg/package-publishers/) - Belongs to a package publishing or registry command family.
- [Terminal utility packages](https://www.automicvault.com/zh-hans/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/zh-hans/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [rust](https://www.automicvault.com/zh-hans/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [cargo-auditable](https://www.automicvault.com/zh-hans/pkg/brew/cargo-auditable/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-binstall](https://www.automicvault.com/zh-hans/pkg/brew/cargo-binstall/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-binutils](https://www.automicvault.com/zh-hans/pkg/brew/cargo-binutils/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-bloat](https://www.automicvault.com/zh-hans/pkg/brew/cargo-bloat/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-bundle](https://www.automicvault.com/zh-hans/pkg/brew/cargo-bundle/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-c](https://www.automicvault.com/zh-hans/pkg/brew/cargo-c/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-cache](https://www.automicvault.com/zh-hans/pkg/brew/cargo-cache/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-careful](https://www.automicvault.com/zh-hans/pkg/brew/cargo-careful/) - Shares av.db curated category or tags: cargo, cli, developer-tools, rust.
- [cargo-expand](https://www.automicvault.com/zh-hans/pkg/cargo/cargo-expand/) - Same normalized package name exists in another local package ecosystem.

## Combined YAML source

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


## 来源

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
