# cargo-matrix-plus
Run a curated matrix of Cargo commands (targets/features) from a YAML config.
This package provides the `cargo matrix` subcommand (binary name: `cargo-matrix`).
## Install
From crates.io:
```bash
cargo install cargo-matrix-plus
```
From this repository:
```bash
cargo install --path crates/cargo-matrix
```
Or run directly:
```bash
cargo run -p cargo-matrix-plus -- --command check
```
If installed:
```bash
cargo matrix --command check
```
When using this repo’s workspace alias:
```bash
cargo matrix check
```
## Quick start
Create a `matrix.yaml` at the repo root:
```yaml
commands:
check: cargo check -p {package} --target {target} {features_flag}
clippy: cargo clippy -p {package} --target {target} {features_flag} -- -D warnings
entries:
- package: cargo-matrix-plus
target: host
```
Run the matrix:
```bash
cargo matrix check
```
## Template variables
Command templates can use:
- `{workspace}`: workspace root path
- `{package}`: package name
- `{target}`: target triple (or `host`)
- `{features}`: comma-separated feature list
- `{features_flag}`: `--features "<features>"` or empty
## Cargo aliases (included)
This repo includes `.cargo/config.toml` aliases:
- `cargo matrix ...` → (in this repo) `cargo run -p cargo-matrix-plus -- --command ...`
- `cargo massage` → run fix, fmt, check, and test in order
## Contributing
See [CONTRIBUTING.md](../../CONTRIBUTING.md).
## Security
See [SECURITY.md](../../SECURITY.md).
## License
Licensed under **MIT OR Apache-2.0**. See [LICENSE-MIT](../../LICENSE-MIT) and
[LICENSE-APACHE](../../LICENSE-APACHE).