34 个版本 (16 个重大变更)
0.16.2 | 2023年2月17日 |
---|---|
0.15.1 | 2023年1月10日 |
0.14.0 | 2022年12月30日 |
0.12.0 | 2022年11月21日 |
0.0.0 | 2020年10月5日 |
#29 在 #gitoxide
1,101 每月下载量
在 7 个 仓库中使用 7 个 (直接使用 3 个)
690KB
13K SLoC
git-config
git-config 是一个用于与 git-config
文件交互的库。
这个库旨在成为读取和写入 git-config
文件的性能良好的 Rust 实现。它提供了从简单的配置值包装到高级的读取器和写者等多个抽象层次。
这个库的亮点是零拷贝解析器。我们采用了避免必要拷贝的技术,并确保不需要规范化的读取操作是无拷贝的。高级抽象保持这一保证,并利用加速结构来提高性能。
目前,这 不是 一个二进制文件。虽然我们打算提供一个可以替换 git config
子命令的替代品,但我们目前缺少实现这一目标的系统级抽象。
贡献
欢迎贡献!
代码质量
这个仓库启用了 pedantic、cargo 和 nursery clippy
检查。请确保运行 cargo clean && cargo clippy
(清理阶段非常重要!)以确保您的代码经过检查。
测试
由于这是一个以性能为导向的crate,除了通过cargo test
进行充分测试的代码外,我们还进行基准测试以衡量性能的显著提升或下降。我们使用criterion
,以便在通过cargo install cargo-criterion
安装后,可以通过cargo bench
运行bench。
对解析代码的更改可能包括一个模糊请求,以确保它不会在输入上崩溃。这可以通过通过cargo +nightly fuzz run parse
来完成,这是通过cargo install cargo-fuzz
安装fuzz
子命令后实现的。
许可协议
在您的选择下,受Apache License, Version 2.0或MIT license许可。除非您明确声明,否则您根据Apache-2.0许可定义的任何有意提交以包含在git-config中的贡献,将根据上述方式双许可,而无需任何附加条款或条件。
依赖项
~7–36MB
~543K SLoC