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

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

cargo-px

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

cargo-binstall

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

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

cargo-careful

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

cargo-semver-checks

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

cargo-udeps

cargo-udeps finds unused dependencies in Cargo.toml.

cargo-sweep

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

marker

marker is a stable linting interface for Rust. Let's make custom lints a reality.

https://crates.io/crates/vergen Generate build, git, rustc, cargo, and sysinfo related cargo:rustc-env instructions via build.rs 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

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

cargo-nextest

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

cargo-edit

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

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

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.

rust-crate-audits

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

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

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

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

cargo-shuttle

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

cargo-careful

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

Cargo subcommand for optimizing binaries with PGO and BOLT.

cargo-hack

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

cargo-watch

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

dylint

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

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

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

cargo-deb

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

cross

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

cargo-llvm-cov

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

Comments