#git-config #git #config-parser #gitoxide #reader-writer

gix-config

来自gitoxide项目的git-config文件解析器和编辑器

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 配置

Download history 114989/week @ 2024-05-02 121288/week @ 2024-05-09 112211/week @ 2024-05-16 114488/week @ 2024-05-23 115743/week @ 2024-05-30 110620/week @ 2024-06-06 113899/week @ 2024-06-13 110798/week @ 2024-06-20 103771/week @ 2024-06-27 104390/week @ 2024-07-04 107135/week @ 2024-07-11 108435/week @ 2024-07-18 117154/week @ 2024-07-25 105724/week @ 2024-08-01 111732/week @ 2024-08-08 107425/week @ 2024-08-15

460,974 每月下载量
210 包中使用(直接使用 9 个)

MIT/Apache

775KB
15K SLoC

gix-config

gix-config是一个用于与git-config文件交互的库。

此包旨在提供高性能的Rust实现,用于读取和写入git-config文件。它提供了不同级别的抽象,从简单的配置值包装到高级的读取器和写入器。

此包的亮点是零拷贝解析器。我们采用技术避免必要的拷贝,并保证不需要规范化的读取是零拷贝。高级抽象保持这一保证,并利用加速结构以提高性能。

目前,这还不是二进制文件。虽然我们打算用此替换git config子命令,但我们目前缺少系统级抽象来实现这一点。

贡献

欢迎贡献!

代码质量

此仓库启用了严格、cargo和nursery clippy 检查。确保运行 cargo clean && cargo clippy(清洁阶段非常重要!)以确保您的代码已检查。

测试

由于这是一个以性能为导向的crate,除了通过cargo test进行充分测试的代码外,我们还进行基准测试以衡量性能的显著提升或下降。我们使用criterionGitHub链接),以便在通过cargo install cargo-criterion安装后,可以通过cargo bench运行benches。

解析代码的更改可能包括一个请求进行模糊测试,以确保它不会在输入上崩溃。这可以通过在通过cargo install cargo-fuzz安装了fuzz子命令后,执行cargo +nightly fuzz run parse来完成。

许可证

可以在您的选择下根据Apache许可证,版本2.0MIT许可证进行许可。
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交给gix-config的任何贡献都应如上双许可,没有任何额外的条款或条件。

依赖项

~9–19MB
~280K SLoC