Awesome
<h1 align="center"> <pre>devx</pre> </h1> <div align="center"> <a alt="GitHub Actions" href="https://github.com/elastio/devx/actions"> <img src="https://github.com/elastio/devx/workflows/ci/badge.svg"/> </a> <a alt="Master docs" href="https://elastio.github.io/devx/devx_cmd/index.html"> <img src="https://img.shields.io/badge/docs-master-green.svg"/> </a> </div>Devx is a collection of utilities for writing your own dev scripts in Rust.
The project is inspired by and intended for seamless usage with cargo-xtask
idioms (you are highly encouraged to study them first).
Most notably it provides convenient APIs for:
- Spawing and interacting with external processes
devx-cmd
- Creating git pre-commit hooks that enforce good practices
devx-pre-commit
Crate map
Crate | docs.rs | crates.io |
---|---|---|
devx-cmd | ||
devx-pre-commit |
Goals
All devx
crates take a convenience-first approach.
The goal is to provide developer-friendly, and laconic APIs as well as the shortest possible compile times.
In particular, this implies:
- Batteries-included
- A vanishingly small amount of dependencies
- Using concrete types and a limited amount of generics
- Logging is included
- Opaque dynamic errors
- Less borrowed and non-thread-safe types
The non-goals are
- Performance and robust consistency
- Usage in highly non-standard projects. Instead, we expect
cargo
layout and sane project configurations. Ideally,devx
andcargo-xtask
might become a framework for enforcing good practices for Rust projects development.