Crates.io | pre-commit-rs |
lib.rs | pre-commit-rs |
version | 0.0.5 |
source | src |
created_at | 2024-11-18 05:28:04.698993 |
updated_at | 2024-11-21 15:05:17.637942 |
description | pre-commit implemeneted in Rust |
homepage | https://github.com/j178/pre-commit-rs |
repository | https://github.com/j178/pre-commit-rs |
max_upload_size | |
id | 1451815 |
size | 399,340 |
A reimplementation of the pre-commit tool in Rust, providing a faster and dependency-free alternative. It aims to be a drop-in replacement for the original tool while also providing some more advanced features.
[!WARNING] This project is still in very early development, only a few of the original pre-commit features are implemented. It is not recommended for normal use yet, but feel free to try it out and provide feedback.
uv
for managing Python tools and environments.pre-commit-rs
provides a standalone installer script to download and install the tool:
# On Linux and macOS
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/pre-commit-rs/releases/download/v0.0.5/pre-commit-rs-installer.sh | sh
# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://github.com/j178/pre-commit-rs/releases/download/v0.0.5/pre-commit-rs-installer.ps1 | iex"
pre-commit-rs
is published as Python binary wheel to PyPI under the name pre-commit-rusty
,
you can install it using pip
, uv
(recommended), or pipx
:
pip install pre-commit-rusty
# or
uv tool install pre-commit-rusty
# or
pipx install pre-commit-rusty
brew install j178/tap/pre-commit-rs
Build from source using Cargo:
cargo install --locked pre-commit-rs
Install from the binary directly using cargo binstall
:
cargo binstall pre-commit-rs
pre-commit-rs
release artifacts can be downloaded directly from the GitHub releases.
[!NOTE] The binary executable is named
pre-commit
(orpre-commit.exe
on Windows) - without the-rs
suffix. It should be available in yourPATH
after installation.
This tool is designed to be a drop-in replacement for the original pre-commit tool, so you can use it with your existing configurations and hooks.
Please refer to the official documentation for more information on how to configure and use pre-commit.
This project is heavily inspired by the original pre-commit tool, and it wouldn't be possible without the hard work of the maintainers and contributors of that project.
And a special thanks to the Astral team for their remarkable projects, particularly uv, from which I've learned a lot on how to write efficient and idiomatic Rust code.