Safe Unix shell-like parameter expansion/variable substitution for those who need a more powerful alternative to envsubst
but don't want to resort to using Bash's eval
, while also not wanting to use a full-on templating engine. Xpanda
is available as a native single-binary Windows/Linux CLI tool and a Rust library.
See how it compares to other programs.
Usage
Check out which patterns Xpanda
will recognize and expand.
Also check out the readme of the submodule that you are interested in:
Development
Prerequisites
Build
To compile the project, simply issue the following command:
$ cargo build
Test
Linting
This project uses rustfmt for formatting and clippy for linting. Run them with:
$ cargo fmt
$ cargo clippy
Unit/Integration/Doc Testing
All code that goes into master must pass all tests. To run all tests, use:
$ cargo test
Benchmarking
Benchmarks can be ran using:
$ cargo bench
Fuzz Testing
And fuzz testing, located in the xpanda-fuzz
directory, can be ran using the cargo-fuzz tool, which has to be installed first:
$ cargo install cargo-fuzz
It must then be ran using the nightly channel:
$ cargo +nightly fuzz run fuzz_input --fuzz-dir xpanda-fuzz
Contribute
Use the issue tracker to report bugs or make feature requests. Pull requests are welcome, but it may be a good idea to create an issue to discuss any changes beforehand.
License
MIT, see LICENSE file.