If you’ve ever waited for pre-commit hooks to crawl through your codebase or wrestled with Python environment issues, prek might be exactly what you didn’t know you needed. It’s a complete reimagining of the pre-commit framework in Rust—same configuration format, same hook ecosystem, but significantly faster execution and zero runtime dependencies. No more Python installation headaches or virtual environment conflicts.

What sets prek apart isn’t just speed (though benchmarks show meaningful improvements). It brings genuinely useful features that pre-commit users have requested for years: built-in monorepo support, shared toolchain installations across hooks, and native integration with modern tools like uv. The single-binary distribution means you can drop it into CI environments or team workflows without worrying about runtime dependencies. Plus, it includes Rust-native implementations of common hooks, eliminating even more overhead.

The adoption story tells the real story here—CPython, FastAPI, and Apache Airflow have already made the switch, which suggests this isn’t just a toy project but a production-ready tool. If you’re maintaining any project with pre-commit hooks, especially larger codebases where hook performance matters, prek deserves a serious look. The migration path is designed to be completely seamless with existing .pre-commit-config.yaml files.


Stars: 6149
💻 Language: Rust
🔗 Repository: j178/prek