Dulwich
Dulwich
A pure-Python implementation of the Git file formats and protocols. No Git binary required.
Pure Python
No Git binary required. Works anywhere Python does — Linux, macOS, Windows.
Rust extensions
Optional Rust extensions for performance-critical paths, automatically used when available.
Porcelain API
High-level clone, pull, push, commit, diff — mirrors Git's own commands.
Low-level API
Direct access to objects, refs, pack files, and the full Git data model.
Protocol v2
Git protocol v2, packfile-uris, bundle URI, and SHA-256 repository support.
Python 3.10+
Supports CPython 3.10–3.14 and PyPy. Typed throughout.
Documentation¶
License¶
Dual-licensed under the Apache License 2.0 and the GNU GPL, version 2 or later.
Source¶
- GitHub: https://github.com/dulwich/dulwich
- Self-hosted: https://www.dulwich.io/code/dulwich