From c4322445bc812aba4347c38f57d07ca4113628e0 Mon Sep 17 00:00:00 2001 From: casjay Date: Fri, 21 Aug 2026 21:26:52 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Add=208=20more=20cargo=20dev=20t?= =?UTF-8?q?ools;=20swap=20cargo-asm=20for=20cargo-show-asm=20=F0=9F=94=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds 8 more commonly-used cargo dev tools that were absent from the tool list entirely, and replaces cargo-asm (unmaintained) with its actively maintained successor cargo-show-asm. All added to the rust-tools stage's main cargo binstall loop, same as every other tool — that stage runs FROM --platform=$BUILDPLATFORM, so binstall fetches run natively on the build host for every target arch, never under QEMU emulation; 05-custom.sh only symlinks already-fetched binaries and installs nothing itself (confirmed in its own in-file comment, per AI.md PART 5's description of 05-custom.sh as toolchain-specific install logic). - Dockerfile: added cargo-auditable (grouped with cargo-audit/cargo-about), cargo-insta (grouped with cargo-nextest), cargo-hakari and cargo-c (grouped near cargo-hack/cbindgen), cargo-modules/cargo-get/cargo-cache/ cargo-readme (grouped with the DB/misc tools at the end of the loop); swapped cargo-asm -> cargo-show-asm in place. - README.md: documented all 8 new tools in their matching category tables, and updated the disassembly row to cargo-show-asm. --- Dockerfile | 12 ++++++++++-- README.md | 10 +++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 182fb89..cab2339 100644 --- a/Dockerfile +++ b/Dockerfile @@ -111,6 +111,7 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local bacon \ cargo-audit \ cargo-about \ + cargo-auditable \ cargo-deny \ cargo-cyclonedx \ cargo-machete \ @@ -122,6 +123,7 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local cargo-chef \ cargo-zigbuild \ cargo-nextest \ + cargo-insta \ just \ tokei \ hyperfine \ @@ -132,6 +134,7 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local taplo-cli \ cargo-sort \ cargo-hack \ + cargo-hakari \ dprint \ grcov \ cargo-llvm-cov \ @@ -140,9 +143,10 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local wasm-tools \ wasm-bindgen-cli \ cbindgen \ + cargo-c \ cargo-binutils \ cargo-bloat \ - cargo-asm \ + cargo-show-asm \ cargo-criterion \ cargo-careful \ cargo-public-api \ @@ -162,7 +166,11 @@ RUN --mount=type=cache,id=cargo-registry-native,sharing=shared,target=/usr/local flamegraph \ probe-rs-tools \ sqlx-cli \ - sea-orm-cli; \ + sea-orm-cli \ + cargo-modules \ + cargo-get \ + cargo-cache \ + cargo-readme; \ do \ cargo binstall -y --disable-strategies compile --target "${RUST_TARGET}" "${tool}" || true; \ done diff --git a/README.md b/README.md index d089ab3..5e791c4 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,7 @@ Run miri with: `cargo +nightly miri test` | `cargo-geiger` | Counts `unsafe` blocks and dependencies — reports unsafe surface area | | `cargo-deny` | Policy enforcement — license allow-lists, ban crates, advisories | | `cargo-audit` | Scan `Cargo.lock` against the RustSec advisory DB | +| `cargo-auditable` | Embed dependency info into the compiled binary so it can be audited later | | `cargo-about` | Generate a third-party license report/notice from `Cargo.lock` | | `cargo-cyclonedx` | Generate a CycloneDX SBOM from `Cargo.lock` | | `cargo-machete` | Detect unused dependencies (stable) | @@ -206,6 +207,7 @@ Run miri with: `cargo +nightly miri test` | Tool | Purpose | |------|---------| | `cargo-nextest` | Faster test runner — parallel, per-test timeouts, JUnit output | +| `cargo-insta` | Snapshot testing — review and accept `.snap` file diffs from the CLI | | `cargo-llvm-cov` | Source-based code coverage using LLVM instrumentation | | `cargo-tarpaulin` | Coverage via ptrace — useful when LLVM instrumentation isn't available | | `grcov` | Mozilla's LLVM coverage aggregator — converts profraw data to lcov/HTML | @@ -246,9 +248,10 @@ Run miri with: `cargo +nightly miri test` | Tool | Purpose | |------|---------| | `cargo-expand` | Expand proc-macros and `macro_rules!` to plain Rust | -| `cargo-asm` | Disassemble a function to see the emitted assembly | +| `cargo-show-asm` | Disassemble a function to see the emitted assembly (maintained successor to `cargo-asm`) | | `cargo-bloat` | Identify what is taking space in your binary | | `cargo-binutils` | `llvm-size`, `llvm-nm`, `llvm-objdump`, etc. via `cargo-` wrappers | +| `cargo-modules` | Visualize and query a crate's module tree | | `tokei` | Count lines of code by language | ### Build & release @@ -262,6 +265,7 @@ Run miri with: `cargo +nightly miri test` | `cargo-deb` | Build `.deb` packages directly from `Cargo.toml` | | `cargo-generate` | Scaffold new crates from templates | | `cargo-chef` | Docker layer caching for Cargo builds — pre-cook dependencies | +| `cargo-c` | Build C-compatible static/shared libs with headers and a `.pc` file | ### Cross-compilation @@ -289,6 +293,7 @@ Run miri with: `cargo +nightly miri test` |------|---------| | `mdbook` | Build documentation books from Markdown | | `mdbook-toc` | Auto-generate table-of-contents for mdBook chapters | +| `cargo-readme` | Generate `README.md` from crate-root doc comments | ### Workflow & dev loop @@ -300,6 +305,8 @@ Run miri with: `cargo +nightly miri test` | `cargo-update` | Update installed cargo binaries (`cargo install-update -a`) | | `cargo-outdated` | Show outdated `Cargo.toml` dependencies | | `cargo-info` | Detailed crate info from crates.io | +| `cargo-get` | Read `Cargo.toml` metadata fields from scripts/CI | +| `cargo-hakari` | Manage a workspace-hack crate to speed up workspace builds | | `cargo-msrv` | Find and verify the minimum supported Rust version | ### Compilation cache @@ -307,6 +314,7 @@ Run miri with: `cargo +nightly miri test` | Tool | Purpose | |------|---------| | `sccache` | Shared compilation cache — cache on local disk, S3, Redis, GCS, or Azure | +| `cargo-cache` | Inspect and clean the `~/.cargo` registry/git cache | ### Database (best-effort)