diff options
Diffstat (limited to 'vendor/gix-config/README.md')
-rw-r--r-- | vendor/gix-config/README.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/gix-config/README.md b/vendor/gix-config/README.md new file mode 100644 index 000000000..8118d83c9 --- /dev/null +++ b/vendor/gix-config/README.md @@ -0,0 +1,54 @@ +# gix-config + +**gix-config is a library for interacting with `gix-config` files.** + +This crate intents to be a performant Rust implementation for reading and +writing `gix-config` files. It exposes tiers of abstractions, from simple +config value wrappers to a high level reader and writer. + +The highlight of this crate is the zero-copy parser. We employ techniques to +avoid copying where necessary, and reads that do not need normalization are +guaranteed to be zero-copy. Higher level abstractions maintain this guarantee, +and utilizes acceleration structures for increased performance. + +Currently, this is _not_ a binary. While we do intent to have a drop-in +replacement for the `git config` sub-command, we're currently missing +system-level abstractions to do so. + +## Contributing + +Contributions are always welcome! + +### Code quality + +This repository enables pedantic, cargo, and nursery `clippy` lints. Make sure +to run `cargo clean && cargo clippy` (the clean stage is very important!) to +ensure your code is linted. + +### Testing + +Since this is a performance oriented crate, in addition to well tested code via +`cargo test`, we also perform benchmarks to measure notable gains or losses in +performance. We use [`criterion`] so benches can be run via `cargo bench` after +installing it via `cargo install cargo-criterion`. + +Changes to parsing code may include a request to fuzz to ensure that it cannot +panic on inputs. This can be done by executing `cargo +nightly fuzz run parse` after +installing the `fuzz` sub-command via `cargo install cargo-fuzz`. + +#### License + +<sup> +Licensed under either of <a href="LICENSE-APACHE">Apache License, Version +2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option. +</sup> + +<br> + +<sub> +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in gix-config by you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. +</sub> + +[`criterion`]: https://github.com/bheisler/criterion.rs |