libgit: add higher-level libgit crate

The C functions exported by libgit-sys do not provide an idiomatic Rust
interface. To make it easier to use these functions via Rust, add a
higher-level "libgit" crate, that wraps the lower-level configset API
with an interface that is more Rust-y.

This combination of $X and $X-sys crates is a common pattern for FFI in
Rust, as documented in "The Cargo Book" [1].

[1] https://doc.rust-lang.org/cargo/reference/build-scripts.html#-sys-packages

Co-authored-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Calvin Wan <calvinwan@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Calvin Wan
2025-01-29 13:50:44 -08:00
committed by Junio C Hamano
parent d76eb0dccc
commit 65c10aa8d5
13 changed files with 242 additions and 8 deletions

View File

@ -0,0 +1,13 @@
# libgit-rs
Proof-of-concept Git bindings for Rust.
```toml
[dependencies]
libgit = "0.1.0"
```
## Rust version requirements
libgit-rs should support Rust versions at least as old as the version included
in Debian stable (currently 1.63).