34个版本 (破坏性更新)
新增 0.40.0 | 2024年8月22日 |
---|---|
0.38.0 | 2024年7月23日 |
0.36.0 | 2024年3月14日 |
0.33.1 | 2023年12月30日 |
0.20.1 | 2023年3月30日 |
#7 in 配置
460,974 每月下载量
在 210 个 包中使用(直接使用 9 个)
775KB
15K SLoC
gix-config
gix-config是一个用于与git-config
文件交互的库。
此包旨在提供高性能的Rust实现,用于读取和写入git-config
文件。它提供了不同级别的抽象,从简单的配置值包装到高级的读取器和写入器。
此包的亮点是零拷贝解析器。我们采用技术避免必要的拷贝,并保证不需要规范化的读取是零拷贝。高级抽象保持这一保证,并利用加速结构以提高性能。
目前,这还不是二进制文件。虽然我们打算用此替换git config
子命令,但我们目前缺少系统级抽象来实现这一点。
贡献
欢迎贡献!
代码质量
此仓库启用了严格、cargo和nursery clippy
检查。确保运行 cargo clean && cargo clippy
(清洁阶段非常重要!)以确保您的代码已检查。
测试
由于这是一个以性能为导向的crate,除了通过cargo test
进行充分测试的代码外,我们还进行基准测试以衡量性能的显著提升或下降。我们使用criterion
(GitHub链接),以便在通过cargo install cargo-criterion
安装后,可以通过cargo bench
运行benches。
解析代码的更改可能包括一个请求进行模糊测试,以确保它不会在输入上崩溃。这可以通过在通过cargo install cargo-fuzz
安装了fuzz
子命令后,执行cargo +nightly fuzz run parse
来完成。
许可证
可以在您的选择下根据Apache许可证,版本2.0或MIT许可证进行许可。除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交给gix-config的任何贡献都应如上双许可,没有任何额外的条款或条件。
依赖项
~9–19MB
~280K SLoC