Ben Chuanlong Du's Blog

It is never too late to learn.

Dev Tools for Rust

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Online Tools

Rust Dev Tools


cargo-show-asm is a cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code.


cargo-px is a cargo subcommand that extends cargo's capabilities when it comes to code generation.


cargo-binstall provides a low-complexity mechanism for installing rust binaries as an alternative to building from source (via cargo install) or manually downloading packages. This is intended to work with existing CI artifacts and infrastructure, and with minimal overhead for package maintainers.


cargo-info extends cargo to query registry for crates details.


cargo-careful execute Rust code carefully, with extra checking along the way.


cargo-semver-checks scans your Rust crate for semver violations.


cargo-udeps finds unused dependencies in Cargo.toml.


cargo-sweep is a cargo subcommand for cleaning up unused build files generated by Cargo.


marker is a stable linting interface for Rust. Let's make custom lints a reality. Generate build, git, rustc, cargo, and sysinfo related cargo:rustc-env instructions via for use in your code via the env! macro or option_env! macro.

rustfmt - Format Code

rustfmt is Rust's code (official) formatting tool. If rustfmt has been installed (using rustup component add rustfmt), you can run the following command to format code in a Rust project.

cargo fmt

Notice that cargo fmt might have issues with Rust code that are nested in many layers and there's no good configuration to make it work. It is suggested that you do not nest Rust code too deeply. This not only make things easier for cargo fmt but also makes your Rust code cleaner and more readable.


rust-clippy is a bunch of lints to catch common mistakes and improve your Rust code.


cargo-nextest is a next-generation test runner for Rust.


cargo-edit is a utility for managing cargo dependencies from the command line. It is a temporary solution before the issue Add cargo-add (from cargo-edit) to cargo proper is resolved.

cargo install cargo-edit


cargo-crev is a cryptographically verifiable code review system for the cargo (Rust) package manager. It is an implementation of Crev as a command line tool integrated with cargo, which helps Rust users evaluate the quality and trustworthiness of their package dependencies.


cargo-audit is a Cargo subcommand which audits Cargo.lock files for crates with security vulnerabilities. It also supports CICD tools such as GitHub Actions (via audit-check) and Travis CI.


Google uses cargo-vet to ensure third-party Rust dependencies have been audited by Googlers or other trusted entities. This repository automatically aggregates Google's audits from various repositories to make them easily reusable by others.


cargo-vet is a tool to help projects ensure that third-party Rust dependencies have been audited by a trusted entity. It strives to be lightweight and easy to integrate.


cargo-generate is a developer tool to help you get up and running quickly with a new Rust project by leveraging a pre-existing git repository as a template.


cargo-dist is cargo build but for building final distributable artifacts and uploading them to an archive.


Shuttle is a Rust-native cloud development platform that lets you deploy your Rust apps for free.


cargo-careful is a tool to run your Rust code extra carefully -- opting into a bunch of nightly-only extra checks that help detect Undefined Behavior, and using a standard library with debug assertions.


Cargo subcommand for optimizing binaries with PGO and BOLT.


Cargo subcommand to provide various options useful for testing and continuous integration.


Cargo Watch watches over your project's source for changes, and runs Cargo commands when they occur.


Dylint is a Rust linting tool, similar to Clippy. But whereas Clippy runs a predetermined, static set of lints, Dylint runs lints from user-specified, dynamic libraries. Thus, Dylint allows developers to maintain their own personal lint collections.


cargo-generate is a developer tool to help you get up and running quickly with a new Rust project by leveraging a pre-existing git repository as a template.


app-template quickly sets up a probe-run + defmt + flip-link embedded project .


cargo-deb is a Cargo helper command which automatically creates binary Debian packages (.deb) from Cargo projects.


cross provides "Zero setup" cross compilation and "cross testing" of Rust crates .


cargo-llvm-cov offers a cargo subcommand to easily use LLVM source-based code coverage.