Skip to content
/ prep Public

Prepare Rust projects for greatness

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Nevermore/prep

Repository files navigation

Prep

Prepare Rust projects for greatness

Latest published version. Dependency staleness status. Apache 2.0 or MIT license.

Prep is a cross-platform CLI tool that provides Rust workspace verification in a single short command. You can just invoke prep ci and if the checks succeed then you can rest easy knowing that your PR won't fail CI.

The latest version is 0.1.0 which was published on 2026-01-31. You can read about the changes in the changelog.

Motivation

Rust projects tend to have a wide variety of fairly complicated verification steps in CI. These steps help ensure that the project stays consistent and keeps working in various scenarios.

However, these CI steps are either written as GitHub Action YAML files or as Bash scripts. Running GitHub Actions requires a rather heavyweight Docker image, which expects a Unix userland, just like Bash scripts. Additionally, they target ephemeral VMs, so they do a lot of tooling setup that isn't efficient for a local machine. All of that meaning that you're really out of luck on Windows and even on Unix it's going to be needlessly cumbersome.

So you need to analyze the specifics of a project's CI and craft custom local scripts to emulate the CI steps. That, or you just manually invoke a few Cargo commands and hope for the best, leading to frequent CI failures on your PRs. Which sucks because CI tends to run at a lot slower speed than your local machine, especially due to cold build cache.

Prep to the rescue

Before opening a PR you can just run prep ci locally and verify that everything matches CI expectations. Because Prep aims for a rather robust set of verifications this will be beneficial even when the project still uses custom CI scripts. However, for best results the project itself should run prep ci in its CI instead of custom scripts. That way the only problems that remain uncaught locally are platform specific, which the CI will catch with its multi-platform job matrix.

Installation

cargo install prep --locked

Usage

Usage: prep [command] [options]

Commands:
       ci              Verify for CI.
  clp  clippy          Analyze with Clippy.
  fmt  format          Format with rustfmt.
       help            Print help for the provided command.

Options:
  -h   --help          Print help for the provided command.
  -V   --version       Print version information.

License

Licensed under either of

at your option.

About

Prepare Rust projects for greatness

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages