4 releases (2 breaking)

0.3.1 Dec 28, 2020
0.3.0 Dec 28, 2020
0.2.0 Dec 25, 2020
0.1.0 Dec 22, 2020

#99 in Command-line interface

26 downloads per month


564 lines

CI crates.io Documentation License Rustc

A CLI intended to aid development and CI workflows. This project can be seen as a high-level "orchestrator" or "wrapper" for tools that involve the Rust programing language.


The application will primarily interact with a configuration (collection of rules) that defines how tools should behave and there are three different sources:

Built-in configuration

Pre-fixed set of rules found within this repository. Feel free to open a PR to create a new configuration.

rust-tools --template you-rust SOME_COMMAND
    Params {
        clippy_flags: [
        rust_flags: [
        rustfmt_flags: [
        toolchain: "",

Configuration file

Can use a built-in configuration as a template for custom needs. Enables the addition or removal of flags.

add_clipy_flags -Aclippy::type_complexity
rm_clippy_flags -Aclippy::implicit_return,-Aclippy::missing_docs_in_private_items
template you-rust
toolchain nightly-2020-11-11

CLI parameters

Depending on the selected target, it is possible to define or extend certain rules;

rust-tools rust-flags -Dbad_style,-Dunused_qualifications

The final configuration will obey the following order: built-in -> file -> CLI, i.e., built-in parameters are overwritten by file parameters and file parameters are overwritten by cli parameters.

Script example

#!/usr/bin/env bash

set -euxo pipefail

cargo install rust-tools

export RUSTFLAGS="$(rust-tools rust-flags)"

rust-tools clippy

rust-tools check-generic SOME_CRATE
rust-tools test-with-features SOME_CRATE FIRST_FEATURE,SECOND_FEATURE

Supported targets

  • clippy flags
  • rust flags
  • rust-toolchain file
  • rustfmt file and flags

No runtime deps