Skip to content

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