What are you building?
Pick a use case to show the tools that matter most, on top of a practical baseline for every Rust project.
Choose a stack Browse curated tool sets for your use case
3
Installing, switching, and managing Rust toolchains and components.
| Tool | Notes | Metrics |
|---|---|---|
| rustup rust-lang/rustup Staff pickEssentials |
Manages your toolchains, components, and cross-compilation targets, and pins a
per-project version via The official Rust toolchain installer and version manager. Installs and
switches between stable, beta, and nightly toolchains, manages components
(clippy, rustfmt, rust-src) and cross-compilation targets, and pins a
per-project toolchain via Effectively mandatory: almost every other tool here assumes a rustup-managed toolchain. The only time you'd skip it is a fully pinned distro/Nix or CI image that provisions toolchains some other way. alternatives rustup-toolchain-install-masterNix (oxalica/rust-overlay) |
7.0k
stars
today
updated
|
| cargo-binstall cargo-bins/cargo-binstall by Félix Saparelli, ryan, Jiahao XU, Binstall Essentials |
Installs the rest of your tooling from prebuilt binaries instead of compiling each one. Bootstraps a fresh machine in seconds rather than minutes. Installs Rust binaries from pre-built GitHub release artifacts instead of
compiling from source, turning a multi-minute Reach for it in CI and on dev machines to install tools fast. Skip it if you
need a build from source for provenance/audit reasons, or for crates that ship
no release binaries (where it gains you nothing over alternatives cargo-installcargo-quickinstall |
119.7k
downloads
2.8k
stars
today
updated
|
| cargo-quickinstall cargo-bins/cargo-quickinstall by David Laban, Jiahao XU |
Installs Rust binaries from precompiled artifacts instead of building from
source. It fetches prebuilt packages from a community build service, falling
back to Useful for skipping long compile times in CI and local setup. It is also used
as a backend by alternatives cargo-binstall |
8.1k
downloads
313
stars
today
updated
|
3
Speeding up, caching, and customizing the build itself.
| Tool | Notes | Metrics |
|---|---|---|
| cargo-chef LukeMathWalker/cargo-chef by Luca Palmieri Staff pickIn Backend Services |
Caches dependency compilation as a separate Docker layer, so an app-only change doesn't rebuild the whole tree. Often the single biggest win on container build times. Speeds up Docker builds by caching your dependency compilation as a separate,
stable image layer. It computes a Specifically a Docker/CI optimization. It does nothing for local alternatives sccacheDocker BuildKit cache mounts |
875.4k
downloads
2.7k
stars
1w ago
updated
|
| sccache mozilla/sccache by Ted Mielczarek, Bernhard Schuster, Igor Matuszewski, Mike Hommey, Sylvestre Ledru In Backend ServicesContinuous Integration |
A shared compiler cache across local and CI builds; complements cargo-chef for the non-Docker path. Wrap the build in a shared compiler cache so CI reuses artifacts across runs. Often the difference between a pipeline people wait for and one they don't. A compiler cache (think Big wins on CI and large teams. Less useful for a single dev with a warm local
alternatives Cargo incremental compilationcargo-chef (Docker layer caching) |
133.3k
downloads
7.6k
stars
3d ago
updated
|
| cargo-wizard Kobzol/cargo-wizard by Jakub Beránek |
An interactive assistant for Cargo build configuration. Pick a goal (fast
compiles, fast runtime, or small binaries) and it writes the matching
It's a one-shot setup helper, not something you run continuously: useful for
learning which profile settings matter and getting a sensible baseline, after
which the output is ordinary TOML you own and tune by hand. It changes how you
build, not how well the build is cached; pair it with |
327
downloads
1.1k
stars
1mo ago
updated
|
3
General-purpose cargo subcommands that smooth day-to-day workflows.
| Tool | Notes | Metrics |
|---|---|---|
| cargo-generate cargo-generate/cargo-generate by ashley williams Staff pick |
Scaffolds a new project from a Git template, filling in the crate name and other
placeholders via Liquid templating and interactive prompts. It's the practical
answer to " Reach for it when you spin up similar crates often or want to standardize a
house style; for a true one-off, plain |
296.1k
downloads
2.5k
stars
1d ago
updated
|
| cargo-edit killercup/cargo-edit by Pascal Hertleif, Ed Page, Benjamin Gill, ordian |
Adds dependency-editing subcommands to Cargo. Mostly you only need it today for alternatives cargo add (built-in)cargo-upgradescargo-set-version |
544.7k
downloads
3.4k
stars
1mo ago
updated
|
| cargo-watch watchexec/cargo-watch by Félix Saparelli, maintainers |
Watches your source tree and re-runs a cargo command ( Deprecated: the project is archived and no longer maintained. For a Rust-aware watch loop with a clean rendered TUI use bacon; for a general-purpose, language-agnostic watcher use watchexec (which now absorbs cargo-watch's maintainers). Don't start new projects on cargo-watch. |
173.9k
downloads
2.9k
stars
1y ago
updated
|
5
Inspecting, updating, auditing, and pruning your dependency tree.
| Tool | Notes | Metrics |
|---|---|---|
| cargo-udeps est31/cargo-udeps by est31 Staff pick |
Finds unused dependencies by inspecting actual compiler output, so it knows which crates were actually linked rather than guessing from source text. This makes it more accurate than heuristic scanners, catching cases that pure text analysis misses and avoiding some false positives. The tradeoff is that it requires a nightly toolchain and a full build, so it is
slower. If you want a stable, fast check for everyday CI, prefer
alternatives cargo-machete |
132.8k
downloads
2.1k
stars
3mo ago
updated
|
| cargo-machete bnjbvr/cargo-machete by Benjamin Bouvier In Publishing a LibrarySecurity & Supply Chain |
Catches dependencies you declared but no longer use, so users don't compile dead weight. Fast enough for a CI gate. Finds unused dependencies quickly enough to run in CI. Removing them leaves less third-party code to review and maintain. Finds dependencies declared in Because the analysis is heuristic (text-based), it can produce false positives
for crates used only via macros or re-exports; mark those with
alternatives cargo-udeps |
473.9k
downloads
1.4k
stars
2w ago
updated
|
| cargo-outdated kbknapp/cargo-outdated by Kevin K. |
Displays a table of dependencies that have newer versions available, comparing
what is resolved in Run alternatives cargo-upgradescargo-edit |
69.3k
downloads
1.4k
stars
2mo ago
updated
|
| cargo-upgrades gitlab.com/kornelski/cargo-upgrades by Kornel |
Checks which dependencies can be upgraded to newer SemVer-incompatible versions, accounting for the whole dependency graph so it only suggests upgrades that can actually resolve. This avoids the false positives you get from naively comparing against the latest crates.io release. Use it as a sanity check before bumping version requirements. It reports only;
pair it with alternatives cargo-outdatedcargo-edit |
4.0k
downloads
17
stars
1mo ago
updated
|
| cargo-tree sfackler/cargo-tree by Steven Fackler |
ARCHIVED. This standalone subcommand visualized the dependency graph as a tree and helped track down where a transitive crate or duplicate version came from. Its functionality was upstreamed into Cargo itself starting with Rust 1.44. Do not install this crate anymore: run the built-in use instead cargo tree (built-in) |
9.5k
downloads
531
stars
6y ago
updated
|
13
Test runners, coverage, property testing, fuzzing, and snapshots.
| Tool | Notes | Metrics |
|---|---|---|
| mockall asomers/mockall by Alan Somers Staff pickIn Testing & Correctness |
Fakes external seams (network, clock, filesystem) so logic can be tested without the real dependency. Pays off when your code already abstracts over traits; if it doesn't, a hand-written fake is often clearer than the macro machinery. A dev-dependency. A powerful mocking library: generate mock implementations of your traits, then set expectations on which methods are called, with what arguments, how often, and what they return. It earns its place at the seams of a system (network, clock, filesystem) where you want to exercise logic without the real dependency. Mockall works best when your code already abstracts over traits rather than
concrete types; retrofitting it can mean introducing traits purely for testing,
which not every codebase wants. For simple cases a hand-written fake or a small
trait impl is often clearer than the macro machinery. Added as a
|
27.6M
downloads
1.8k
stars
1mo ago
updated
|
| rstest la10736/rstest by Michele d'Amico Staff pickIn Testing & Correctness |
Cuts the copy-paste out of running one test with many inputs. Adds fixtures and parameterized cases to ordinary It removes most of the copy-paste from table-driven tests while staying close to
the built-in harness, so it composes with |
25.5M
downloads
1.6k
stars
5mo ago
updated
|
| loom tokio-rs/loom by Carl Lerche, Core Staff pickIn Testing & Correctness |
Explores thread interleavings and memory orderings to find races in lock-free
code. Use it only if you write your own synchronization primitives; everyday
A model checker for concurrent Rust. Write a test against loom's drop-in
replacements for This is a tool for |
11.2M
downloads
2.8k
stars
6mo ago
updated
|
| cargo-nextest nextest-rs/nextest by Rain, Nextest Bot Staff pickEssentials |
A faster, clearer A next-generation test runner that executes each test in its own process for
isolation, runs them in parallel with a clean summary output, and is typically
faster than Run it with alternatives cargo test (built-in) |
1.7M
downloads
3.2k
stars
4d ago
updated
|
| cargo-mutants sourcefrog/cargo-mutants by Martin Pool Staff pickIn Testing & Correctness |
Makes small changes to your code and reruns the tests. If they still pass, they may not be checking the changed behavior. This can reveal gaps that coverage alone misses. It is slow, so scope it to changed files in CI rather than the whole tree. Mutation testing for Rust: it injects small changes (a It's CPU-hungry: every mutant is a fresh build-and-test cycle, so scope it to
changed files or specific modules in CI rather than re-running the whole tree.
It pairs naturally with |
179.9k
downloads
1.3k
stars
1d ago
updated
|
| miri rust-lang/miri Staff pick |
An interpreter for Rust's mid-level IR that runs your test suite and flags
undefined behavior in Installed as a rustup component with |
6.5k
stars
1d ago
updated
|
| proptest proptest-rs/proptest by Mazdak Farrokhzad, Jason Lingle, publish In Publishing a LibraryTesting & Correctness |
Property tests check rules across many generated inputs instead of relying on a
handful of examples. When one fails, proptest shrinks it to a small, saved
counterexample. Add it under When examples aren't enough, check rules over generated inputs and let proptest shrink any failure to a minimal, saved counterexample. Strongest on parsers, encoders, and anything that converts data out and back. Added as a dev-dependency. A property-based testing library: instead of hand-writing example inputs, you
describe properties that should hold for all inputs and let Its alternatives quickcheck |
44.1M
downloads
2.2k
stars
3d ago
updated
|
| insta mitsuhiko/insta by Armin Ronacher, Maximilian Roos In Command-Line AppsTesting & Correctness |
Records your CLI's real output ( Records large or structured output such as debug text, JSON, YAML, or RON. Later
test runs fail on changes and A snapshot testing library that records the output of a value (debug, JSON, YAML, RON, or plain strings) to a file and fails when it later changes. This is ideal for asserting on large or structured outputs where writing explicit expected values by hand is tedious. Its companion |
24.2M
downloads
2.9k
stars
1w ago
updated
|
| quickcheck BurntSushi/quickcheck by Andrew Gallant |
A property-based testing library in the classic Haskell QuickCheck style: you assert properties that should hold for all inputs, and it generates random values to try to falsify them, shrinking any counterexample to a minimal case. Good for a lightweight, low-ceremony way to add property tests. For richer
strategies, struct-aware generation, and a persistent failure database, reach
for alternatives proptest |
9.6M
downloads
2.8k
stars
4mo ago
updated
|
| cargo-llvm-cov taiki-e/cargo-llvm-cov by Taiki Endo In Continuous IntegrationTesting & Correctness |
Shows which lines and branches the tests exercise. Publish the report or set a minimum, so coverage trends are visible rather than assumed. Shows which source lines actually ran during the tests. Publish the report or gate on it so coverage remains visible. It integrates with nextest. Collects source-based code coverage using LLVM's instrumentation
( It works across the major platforms Rust's LLVM coverage supports and is the
current go-to for accurate coverage. It needs the alternatives cargo-tarpaulin |
1.5M
downloads
1.4k
stars
3d ago
updated
|
| cargo-fuzz rust-fuzz/cargo-fuzz by Corey Farwell, Nick Fitzgerald, Simonas Kazlauskas, Manish Goregaokar, Publishers |
Scaffolds and drives coverage-guided fuzzing targets backed by libFuzzer. You
write a It links libFuzzer through the compiler's sanitizer support and therefore
requires a nightly toolchain. For an AFL-style engine instead, see the alternatives cargo-afl |
1.2M
downloads
1.9k
stars
1mo ago
updated
|
| cargo-tarpaulin xd009642/tarpaulin by xd009642 |
A code coverage tool for Rust that reports line coverage and uploads cleanly to
services like Codecov and Coveralls. It was the long-standing default for CI
coverage and remains widely used and simple to invoke with Its mature Ptrace-based engine is Linux/x86_64-focused, though it now also
offers an LLVM-based backend. If you need accurate source-based coverage across
more platforms, alternatives cargo-llvm-cov |
312.9k
downloads
3.0k
stars
1w ago
updated
|
| cargo-afl rust-fuzz/afl.rs by Samuel Moelius, anishnaik, Publishers |
Coverage-guided fuzzing for Rust built on AFL++. The Pick it when you want AFL++'s mature mutation engine and tooling. For the
LLVM/libFuzzer ecosystem with first-class alternatives cargo-fuzz |
28.5k
downloads
1.8k
stars
2w ago
updated
|
2
Catching bugs, anti-patterns, and style issues before review.
| Tool | Notes | Metrics |
|---|---|---|
| clippy rust-lang/rust-clippy Staff pickEssentials |
700+ lints that catch correctness traps and non-idiomatic code The official Rust linter, providing 700+ lints that catch correctness issues,
performance pitfalls, and unidiomatic code beyond what Installed as a rustup component with |
13.5k
stars
1d ago
updated
|
| cargo-semver-checks obi1kenobi/cargo-semver-checks by Predrag Gruevski In Publishing a Library |
Scans your public API against the last published release and flags breaking changes before you tag one. The single most valuable check a library can add to CI. Lints a crate's public API for SemVer-violating changes between releases, catching breaking changes that would require a major version bump. Run |
151.5k
downloads
1.7k
stars
today
updated
|
2
Consistent, automatic code and config formatting.
| Tool | Notes | Metrics |
|---|---|---|
| rustfmt rust-lang/rustfmt Staff pickEssentials |
Canonical, non-negotiable formatting. Wire it into the editor on save and stop arguing about style. The official Rust code formatter, applying a consistent style across a codebase so diffs stay focused on real changes rather than whitespace. Installed as a rustup component with alternatives taplo |
6.9k
stars
2d ago
updated
|
| taplo tamasfe/taplo by Ferenc Tamás, JounQin In Continuous Integration |
Extends the formatting gate to A TOML toolkit providing a formatter, linter, and language server for TOML files
such as Install with the alternatives rustfmt |
183.1k
downloads
2.4k
stars
3w ago
updated
|
5
Vulnerability scanning, license/policy enforcement, and audits.
| Tool | Notes | Metrics |
|---|---|---|
| cargo-audit rustsec/rustsec by Alex Gaynor, Tony Arcieri, Dirkjan Ochtman, Sergey "Shnatsel" Davidoff, Working Group Staff pickIn Security & Supply Chain |
Cargo-audit checks your lockfile against the RustSec advisory database. It is cheap, fast, and worth running in CI from the start of a project. Scans Run alternatives cargo-denycargo-vet |
3.0M
downloads
1.9k
stars
1w ago
updated
|
| cargo-deny EmbarkStudios/cargo-deny by embark-studios Staff pickIn Backend ServicesContinuous IntegrationPublishing a LibrarySecurity & Supply Chain |
A policy gate on known vulnerabilities, licenses, and banned crates for everything you're about to deploy. Checks known vulnerabilities, licenses, and banned crates in one pass. It gives every PR the same supply-chain check. Gate CI on known vulnerabilities, license policy, and banned or duplicate crates. It matters more for a library, whose dependency choices become its users' dependency choices. Cargo-deny adds policy checks for known vulnerabilities, licenses, banned and
duplicate crates, and permitted sources. Configure them in A policy linter for your dependency graph, checking security advisories, license compliance, banned or duplicate crates, and allowed source registries. Configure rules in alternatives cargo-auditcargo-vet |
1.4M
downloads
2.4k
stars
4d ago
updated
|
| cargo-geiger geiger-rs/cargo-geiger by Tony Arcieri, anderejd, pinkforest(she/her), publish-rs, publish Staff pickIn Security & Supply Chain |
Counts Audits your dependency tree for Treat the counts as a heuristic, not a verdict: alternatives cargo-auditcargo-deny |
49.3k
downloads
1.6k
stars
2mo ago
updated
|
| cargo-auditable rust-secure-code/cargo-auditable by Tony Arcieri, Sergey "Shnatsel" Davidoff In Backend ServicesSecurity & Supply Chain |
Embeds the exact dependency list into the binary, so a deployed artifact stays
scannable with Embeds the dependency list into release binaries so they can be scanned with
Embeds the exact dependency list into compiled binaries so they can be audited
after the fact, even without the original source or Build with |
238.5k
downloads
842
stars
2d ago
updated
|
| cargo-vet mozilla/cargo-vet by Nika Layzell, Bobby Holley In Security & Supply Chain |
Cargo-vet records which dependencies people have reviewed and shares those audits across a team. This process is usually unnecessary for a solo project, but some organizations require it. Its focus is human judgment; cargo-audit handles advisories. A supply-chain tool to record and enforce that each dependency has been human-reviewed, storing audit records that can be shared across an organization. Run alternatives cargo-auditcargo-deny |
95.7k
downloads
976
stars
4mo ago
updated
|
7
Benchmarking, profiling, and finding what's slow.
| Tool | Notes | Metrics |
|---|---|---|
| criterion bheisler/criterion.rs by Berkus Decker, Brook Heisler, David Himmelstrup, maintainers Staff pickIn Profiling & Optimization |
Criterion benchmarks a small function with many samples, confidence intervals,
and regression detection between runs. Use it when you need numbers you can
defend. Criterion belongs in A statistics-driven microbenchmarking library for in-process Rust functions. It collects many samples, estimates confidence intervals, and detects performance regressions between runs, all on stable Rust. Prefer it over the unstable built-in |
54.8M
downloads
5.5k
stars
4mo ago
updated
|
| cargo-bloat RazrFalcon/cargo-bloat by Yevhenii Reizner Staff pickIn Embedded & no_stdProfiling & Optimization |
Flash and RAM are the budget. Optimization and size can pull in opposite directions, so keep an eye on the
binary. Breaks down what's taking up space in a release binary, listing the largest
functions and the per-crate contribution to the It measures machine-code size, not runtime cost, so the biggest function is not
necessarily a slow one. Generic-heavy code is attributed to the crate that
instantiates it, which can blur where size really comes from. For the matching
instruction-level view of a single function, use |
27.7k
downloads
2.8k
stars
2y ago
updated
|
| divan nvzqz/divan by Nikolai Vazquez, Thom Chiovoloni In Profiling & Optimization |
Divan is a lighter benchmarking library that compiles quickly. Annotate plain functions and read the results in a compact tree. Prefer it when you want readable numbers without Criterion's heavier statistics. A fast, low-boilerplate microbenchmarking harness. Benchmarks are plain
functions annotated with Reach for it when you want quick, readable benchmarks that compile fast on
stable Rust. It does less statistical analysis than |
2.7M
downloads
1.4k
stars
1mo ago
updated
|
| hotpath pawurb/hotpath-rs by Paweł Urbanek |
An instrumentation-based profiler: annotate hot functions with
Reach for it when you want low-overhead, targeted numbers on functions you
already suspect, especially in async code where it separates time spent waiting
on I/O from time burning CPU. Because it only measures what you annotate, it
won't reveal hot spots in code you didn't mark; for unguided, whole-process
sampling reach for alternatives samplycargo-flamegraph |
343.4k
downloads
1.7k
stars
1d ago
updated
|
| cargo-flamegraph flamegraph-rs/flamegraph by Tyler Neely, Dirkjan Ochtman, maintainers In Backend ServicesProfiling & Optimization |
When a handler is slow under load, a flamegraph gives you a visual map of where the runtime actually goes. Start here for "where does the time go?" One Generates flamegraphs from a single Reach for it when you need a quick visual of where wall-clock time goes across a
whole binary. It profiles a complete run, so for fine-grained, statistically
sound timing of individual functions use alternatives samplyperf |
320.5k
downloads
6.0k
stars
1w ago
updated
|
| hyperfine sharkdp/hyperfine by David Peter In Profiling & Optimization |
Hyperfine benchmarks a whole command. It supports warm-up runs, statistical timing, and A/B comparison of two binaries. A command-line benchmarking tool that runs a program many times, performs warmup runs, and reports mean/stddev with statistical analysis and outlier detection. Supports parameterized runs and exporting results to JSON/CSV/Markdown. Use it to compare whole programs or shell commands (e.g. two CLI builds) under
realistic conditions. It measures process start-to-finish time, so it cannot
profile in-process functions; for that use |
116.4k
downloads
28.7k
stars
3mo ago
updated
|
| samply mstange/samply by Markus Stange In Profiling & Optimization |
When the static picture isn't enough, A cross-platform sampling profiler: Good when you want interactive exploration of where time is spent across a whole
process. For a static, shareable SVG instead use alternatives cargo-flamegraphperf |
10.5k
downloads
4.4k
stars
3d ago
updated
|
3
Debuggers, expansion, and understanding what the compiler sees.
| Tool | Notes | Metrics |
|---|---|---|
| cargo-expand dtolnay/cargo-expand by David Tolnay Staff pick |
Prints the source of your crate after macro expansion, so you can see exactly
what It shells out to the compiler's expansion mode, which requires a nightly alternatives cargo-show-asm |
606.8k
downloads
3.1k
stars
5d ago
updated
|
| tokio-console tokio-rs/console by Carl Lerche, Eliza Weisman, Console Staff pickIn Backend ServicesProfiling & Optimization |
A live terminal view into a running Tokio app. It shows task activity, wakeups,
and resource usage, which helps you find work that's stuck, busy-looping, or
never waking. It is for development and needs Async slowness often comes from scheduling even when a CPU profile looks normal. This surfaces stuck or busy-looping tasks that an ordinary profiler can't see. A diagnostics and debugging TUI for async Rust. It connects to a running
Indispensable for diagnosing async stalls and runaway tasks. It requires adding
the subscriber and building with alternatives samplycargo-flamegraph |
33.3k
downloads
4.6k
stars
2w ago
updated
|
| cargo-show-asm pacak/cargo-show-asm by pacak In Embedded & no_stdProfiling & Optimization |
On a chip with kilobytes of flash, generated machine code matters. Inspect the assembly for a function to confirm it inlined, vectorized, or simply fits. Shows whether an expected optimization, such as inlining, vectorization, or removing bounds checks, appears in the generated assembly. Shows the assembly, LLVM IR, MIR, or WASM the compiler generates for a chosen
function via Use it when you need to inspect codegen at the instruction level for a specific
function. To see source after macro expansion instead use alternatives cargo-expand |
12.3k
downloads
974
stars
2w ago
updated
|
1
Writing, testing, and publishing documentation.
| Tool | Notes | Metrics |
|---|---|---|
| mdbook rust-lang/mdBook by rust-lang-owner Staff pickIn Publishing a Library |
Builds the narrative guide rustdoc cannot provide, including tutorials, concepts, and worked examples. It is optional, but often helps people understand and adopt a crate. Builds searchable online books from a set of Markdown files; it powers The Rust Book and most official Rust documentation. Run |
813.5k
downloads
22.1k
stars
2d ago
updated
|
4
Versioning, changelogs, and shipping crates and binaries.
| Tool | Notes | Metrics |
|---|---|---|
| release-plz release-plz/release-plz by Marco Ieni Staff pickIn Publishing a Library |
Provides a hands-off, PR-based release flow. It derives version bumps and changelog entries from your commits, then publishes when the release PR merges. Start here unless you want to drive releases by hand. Automates releases for cargo workspaces through pull requests: it derives version bumps and changelog entries from conventional commits, opens a release PR, and publishes to crates.io once merged. Designed to run in CI. Use it for a hands-off, git-driven release flow across many crates. If you want
manual, step-by-step control from your terminal instead, use the lower-level
alternatives cargo-releasegit-cliff |
54.8k
downloads
1.5k
stars
today
updated
|
| git-cliff orhun/git-cliff by Orhun Parmaksız |
A highly customizable changelog generator that builds release notes from git history, with first-class support for conventional commits and fully templated output (via Tera) and regex-based commit grouping. Use it when you want full control over changelog formatting independent of your
release tooling. It only produces the changelog; to drive the actual version
bump, tag, and publish use alternatives release-plzcargo-release |
34.5k
downloads
12.2k
stars
2d ago
updated
|
| cargo-dist axodotdev/cargo-dist by Aria Desires, ashley williams, Misty De Méo, axoadmin, eng In Command-Line Apps |
Builds binaries for Linux, macOS, and Windows. It also creates
shell/PowerShell/Homebrew installers and wires up release CI to produce them on
a version tag. Once the binaries reach GitHub Releases, users can
Builds and packages cross-platform binary artifacts and installers (shell/PowerShell installers, archives, npm/Homebrew formulae) and wires up the CI to produce them on a tagged release. Use it when you ship prebuilt binaries rather than just publishing a crate. Note
the project has been renamed to alternatives release-plzcargo-release |
22.2k
downloads
2.1k
stars
4d ago
updated
|
| cargo-release crate-ci/cargo-release by Ning Sun, Ed Page In Publishing a Library |
Cargo-release gives you explicit commands for version bumps, tags, and publishing. Use it when you would rather run each release step yourself than hand it to a bot. Automates the mechanics of cutting a release: bumps the version, commits, creates
a git tag, runs Reach for it when you want explicit, command-driven control over each release
step. If you prefer a fully automated, PR-based flow that derives versions from
conventional commits, use alternatives release-plzcargo-dist |
15.1k
downloads
1.6k
stars
4d ago
updated
|
2
Building binaries for a platform other than the host system.
| Tool | Notes | Metrics |
|---|---|---|
| cross cross-rs/cross by Adam Greig, publishers Staff pick |
Zero-setup cross compilation: Use it to target architectures and platforms without manually installing cross
linkers. It requires a running container engine (Docker or Podman), which can be
a dealbreaker in restricted CI; if you only need different glibc versions or want
to avoid containers, consider alternatives cargo-zigbuild |
300.1k
downloads
8.3k
stars
5d ago
updated
|
| cargo-zigbuild rust-cross/cargo-zigbuild by messense |
Cross compiles by using Use it for lightweight, container-free cross builds, especially for glibc version
targeting. It requires Zig to be installed and does not cover every exotic target
or runtime; for those, alternatives cross |
1.5M
downloads
2.6k
stars
2w ago
updated
|
1
Flashing, debugging, and inspecting firmware on microcontrollers.
| Tool | Notes | Metrics |
|---|---|---|
| probe-rs probe-rs/probe-rs by Noah Hüsser, Dominik Boehi, crate-owners Staff pickIn Embedded & no_std |
Probe-rs talks to a debug probe, the hardware link between your computer and
board. It can flash firmware, reset the device, stream RTT logs, and connect to
editor debuggers through A toolkit for debugging and flashing embedded Rust on real hardware. It talks
to debug probes (CMSIS-DAP, J-Link, ST-Link) to flash firmware, reset targets,
and run an in-app log/RTT console, and ships This is not a cross-compilation tool: you still need to install the appropriate
Rust target (for example with alternatives OpenOCDcargo-flashcargo-embed |
158.0k
downloads
2.9k
stars
today
updated
|
3
Building, binding, and packaging Rust for browsers and JavaScript.
| Tool | Notes | Metrics |
|---|---|---|
| wasm-pack rustwasm/wasm-pack by Jesper Håkansson In Web Frontend (WASM) |
Use wasm-pack instead of Trunk when you need an npm package rather than a hosted app. It wraps the build into something publishable to the JavaScript ecosystem and is usually unnecessary for a self-contained Rust site. Builds Rust-generated WebAssembly for consumption from JavaScript, producing an
npm-ready package with the Use it when you publish a Rust library to npm or integrate WASM into a JS
toolchain. Note its maintenance activity has slowed; for a full Rust frontend app
prefer alternatives trunkwasm-bindgen-cli |
1.3M
downloads
7.3k
stars
1w ago
updated
|
| wasm-bindgen rustwasm/wasm-bindgen by Ingvar Stepanyan, daxpedda, Guy Bedford, wasm-bindgen-publish In Web Frontend (WASM) |
The glue between Rust and JavaScript or the DOM. Trunk drives it for you; you'll invoke it directly only for custom build setups or when debugging the generated bindings. The foundational toolchain for high-level interaction between Rust-compiled
WebAssembly and JavaScript. The You rarely invoke it directly: |
885.6k
downloads
9.1k
stars
3d ago
updated
|
| trunk trunk-rs/trunk by Anthony Dodd In Web Frontend (WASM) |
Trunk builds and serves WASM web apps from an A WASM web application bundler for Rust frontend frameworks like Yew and Leptos.
Driven by a Reach for it to build and ship a Rust single-page app to the browser. If your
goal is instead to produce a WASM package consumed from JavaScript/npm, use
alternatives wasm-packwasm-bindgen-cli |
103.3k
downloads
4.4k
stars
3w ago
updated
|
8
Language servers, watchers, and general developer ergonomics.
| Tool | Notes | Metrics |
|---|---|---|
| bacon Canop/bacon by Denys Séguret Staff pickEssentials |
A background A background Rust code checker that re-runs Use it for a fast, terminal-based feedback loop without a full IDE. It is
Rust/cargo-focused; if you need a language-agnostic runner that executes
arbitrary commands on file change, use alternatives watchexeccargo-watch (deprecated) |
20.3k
downloads
3.4k
stars
1d ago
updated
|
| rust-analyzer rust-lang/rust-analyzer Staff pickEssentials |
The language server behind completion, go-to-definition, and inline errors in VS Code, Zed, and Neovim. Install it as a rustup component or editor extension; it's the single biggest quality-of-life upgrade for writing Rust. The official Language Server Protocol implementation for Rust, powering IDE features like completion, go-to-definition, inline type hints, refactorings, and on-the-fly diagnostics in editors such as VS Code, Zed, and Neovim. It is the default choice for editor integration and is distributed as a alternatives bacon |
16.8k
stars
today
updated
|
| cargo-xtask matklad/cargo-xtask Staff pick |
A convention rather than a binary: you add an Reach for it when you want dev and CI tasks that are cross-platform and can
share your crates' own types instead of drifting shell or alternatives justcargo-make |
1.3k
stars
10mo ago
updated
|
| just casey/just by Casey Rodarmor, maintainers In Command-Line Apps |
A A command runner that saves project-specific commands as recipes in a Use it to standardize common project tasks (build, test, lint, deploy) for a
team. It is a task runner, not a build system, so it does not do incremental
builds based on file changes; for that keep using alternatives makecargo-make |
481.8k
downloads
35.4k
stars
4d ago
updated
|
| cargo-make sagiegurari/cargo-make by Sagie Gur-Ari |
A task runner and build tool configured through a Choose it when you want a batteries-included, cargo-native task system that
encodes complex pipelines in one file. If you only need a simple, language
agnostic command launcher, alternatives justmake |
242.6k
downloads
2.9k
stars
6mo ago
updated
|
| evcxr evcxr/evcxr by David Lattimore |
Provides interactive Rust evaluation: Use it for experimentation, learning, and prototyping snippets without a full
crate. It recompiles behind the scenes so it is not a performance-measurement
tool; for benchmarking use alternatives irust |
114.7k
downloads
6.5k
stars
1d ago
updated
|
| watchexec watchexec/watchexec by Félix Saparelli |
A general-purpose, language-agnostic file watcher that runs an arbitrary command
whenever matching files change, with debouncing, glob filters, and process
restart handling. Installed via the Use it to drive any tool on change (tests, builds, codegen, server reloads),
regardless of language. For a Rust-specific experience with a results TUI and
ready-made alternatives baconcargo-watch (deprecated) |
8.0k
downloads
7.1k
stars
today
updated
|
| IRust sigmaSd/IRust by Bedis Nbiba |
A standalone Rust REPL for the terminal, with code completion, syntax highlighting, and the ability to pull in crates on the fly to experiment interactively. Reach for it when you want a quick scratchpad for Rust without setting up a
project. If you'd rather work in notebooks or need a Jupyter kernel, alternatives evcxr |
1.3k
downloads
715
stars
1mo ago
updated
|
No tools match your search.