Libraries

Note

Draft placeholder — outline notes only; prose not yet written.

Points this section needs to cover:

  • When to use a library instead of shelling out to the git binary

  • libgit2 and its language bindings (Rust git2-rs, Python pygit2, Go git2go, Node nodegit, Ruby Rugged)

  • JGit (Java), go-git (pure Go), Dulwich (pure Python)

  • gitoxide (gix, Rust) — new since the 2nd edition

  • Per-library SHA-256 object-format support status — a real concern during the 3.0 transition