Skip to main content

This is the Dulwich project.

It aims to provide an interface to git repos (both local and remote) that doesn’t call out to git directly but instead uses pure Python.

Main website: <https://www.dulwich.io/>

License: Apache License, version 2 or GNU General Public License, version 2 or later.

The project is named after the part of London that Mr. and Mrs. Git live in in the particular Monty Python sketch.

Installation

By default, Dulwich’ setup.py will attempt to build and install the optional C extensions. The reason for this is that they significantly improve the performance since some low-level operations that are executed often are much slower in CPython.

If you don’t want to install the C bindings, specify the –pure argument to setup.py:

$ python setup.py --pure install

or if you are installing from pip:

$ pip install dulwich --global-option="--pure"

Note that you can also specify –global-option in a requirements.txt file, e.g. like this:

dulwich --global-option=--pure

Getting started

Dulwich comes with both a lower-level API and higher-level plumbing (“porcelain”).

For example, to use the lower level API to access the commit message of the last commit:

>>> from dulwich.repo import Repo
>>> r = Repo('.')
>>> r.head()
'57fbe010446356833a6ad1600059d80b1e731e15'
>>> c = r[r.head()]
>>> c
<Commit 015fc1267258458901a94d228e39f0a378370466>
>>> c.message
'Add note about encoding.\n'

And to print it using porcelain:

>>> from dulwich import porcelain
>>> porcelain.log('.', max_entries=1)
--------------------------------------------------
commit: 57fbe010446356833a6ad1600059d80b1e731e15
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Sat Apr 29 2017 23:57:34 +0000

Add note about encoding.

Further documentation

The dulwich documentation can be found in docs/ and built by running make doc. It can also be found on the web.

Help

There is a #dulwich IRC channel on the Freenode, and dulwich-announce and dulwich-discuss mailing lists.

Contributing

For a full list of contributors, see the git logs or AUTHORS.

If you’d like to contribute to Dulwich, see the CONTRIBUTING file and list of open issues.

Supported versions of Python

At the moment, Dulwich supports (and is tested on) CPython 3.5 and later and Pypy.

The latest release series to support Python 2.x was the 0.19 series. See the 0.19 branch in the Dulwich git repository.

Metadata

Release files for dulwich 0.20.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dulwich 0.20.10
File
dulwich-0.20.10-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
dulwich-0.20.10-cp39-cp39-manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
dulwich-0.20.10-cp39-cp39-manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details
dulwich-0.20.10-cp39-cp39-macosx_10_14_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.14+ x86-64 Details
dulwich-0.20.10-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
dulwich-0.20.10-cp38-cp38-manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
dulwich-0.20.10-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details
dulwich-0.20.10-cp38-cp38-macosx_10_14_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.14+ x86-64 Details
dulwich-0.20.10-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
dulwich-0.20.10-cp37-cp37m-manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
dulwich-0.20.10-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
dulwich-0.20.10-cp37-cp37m-macosx_10_14_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.14+ x86-64 Details
dulwich-0.20.10-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
dulwich-0.20.10-cp36-cp36m-manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Details
dulwich-0.20.10-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
dulwich-0.20.10-cp36-cp36m-macosx_10_14_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.14+ x86-64 Details

Total release size: 7.7 MB

Release files / dulwich-0.20.10-cp39-cp39-win_amd64.whl

Download URL dulwich-0.20.10-cp39-cp39-win_amd64.whl
Size 461.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
efb9f4b4bace69ceb31f72977e76794a97216d9d207aa8d2f8198bad6e4aa395
BLAKE2b-256 checksum
How to use checksums
f95c78d6e9f2cdcc0e7b17cb241c8e7d650efb578d09a16448d935345f3edc5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp39-cp39-manylinux2010_x86_64.whl

Download URL dulwich-0.20.10-cp39-cp39-manylinux2010_x86_64.whl
Size 503.2 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
ec0f8919f4f5aeb9f92f1b910dbbb35517bd51db599f2ead8f40d3d1903bb3ba
BLAKE2b-256 checksum
How to use checksums
f891cc396998aa14772bcdeae3581dc75e70fe1f4b4521b2a72d698faa45620f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp39-cp39-manylinux1_x86_64.whl

Download URL dulwich-0.20.10-cp39-cp39-manylinux1_x86_64.whl
Size 503.2 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
fa0c771d656f9af3d1082861367796c32f07b9a4c6a365e61330ca83d282d3fa
BLAKE2b-256 checksum
How to use checksums
4abec06bcd6a8d364848089a38c5e02a97edfd97c1b771db699a0b6769272323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp39-cp39-macosx_10_14_x86_64.whl

Download URL dulwich-0.20.10-cp39-cp39-macosx_10_14_x86_64.whl
Size 449.1 kB
Tags CPython 3.9 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
0ffba7a2913d52497abe69ce0249c9baa568b198b523d007adf04d9a822d6238
BLAKE2b-256 checksum
How to use checksums
cfe8d5369ef965bc1dfd3e05b627cce4927921b09180ba62a01fdf775639918f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp38-cp38-win_amd64.whl

Download URL dulwich-0.20.10-cp38-cp38-win_amd64.whl
Size 460.9 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
5b0064b3b1ea2bb008de25bd69ad6265cb365ddfb1fef8f492d670c827e254ef
BLAKE2b-256 checksum
How to use checksums
baa839f879535a11f207ae6c86749f9b12d78811be3b8c3973cb31702074f255
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / dulwich-0.20.10-cp38-cp38-manylinux2010_x86_64.whl

Download URL dulwich-0.20.10-cp38-cp38-manylinux2010_x86_64.whl
Size 505.1 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
b1b0bfd7a893eec08d84214cc15aa04c8df94e40653c62968fc8883c525ae7f5
BLAKE2b-256 checksum
How to use checksums
ed282e87d3743b30125e0f6b09ed4e79ca24adb4d5a9e0ebfeea05b86ac80a0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp38-cp38-manylinux1_x86_64.whl

Download URL dulwich-0.20.10-cp38-cp38-manylinux1_x86_64.whl
Size 505.0 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
02820e87d2e33dd032a6616ee91fecbfd964c226b00e949cf6035f2afef56045
BLAKE2b-256 checksum
How to use checksums
750e6f607262c2c05f35eff8fe704057fbcc2dfd5022f1f6a03994068becacbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp38-cp38-macosx_10_14_x86_64.whl

Download URL dulwich-0.20.10-cp38-cp38-macosx_10_14_x86_64.whl
Size 449.1 kB
Tags CPython 3.8 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
96710d21409ffa68d2b3100d181f5120045d9d35dcfa395b1a704e2188a43715
BLAKE2b-256 checksum
How to use checksums
e8ba71ee9e611dd0e4696f897196248a2b51e6580444bfaed58a3d605e329323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

Release files / dulwich-0.20.10-cp37-cp37m-win_amd64.whl

Download URL dulwich-0.20.10-cp37-cp37m-win_amd64.whl
Size 460.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
9eb0a0905d112d2e3e4029b6d749ae52338da1725caad1a804282ab88d4f6eef
BLAKE2b-256 checksum
How to use checksums
59cdced7f30337d21b909bbac3f12d13ad8517f2905fb3f170f64d7c803461b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.9

Release files / dulwich-0.20.10-cp37-cp37m-manylinux2010_x86_64.whl

Download URL dulwich-0.20.10-cp37-cp37m-manylinux2010_x86_64.whl
Size 504.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
a7d81104f1849a9a393370d863811661acec89cf2ff6cdea76a4ff771fcdb6ff
BLAKE2b-256 checksum
How to use checksums
f86713d70ef831d361cfac51fe5c4855041b0cd2bc90d50554c790af4caca6d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp37-cp37m-manylinux1_x86_64.whl

Download URL dulwich-0.20.10-cp37-cp37m-manylinux1_x86_64.whl
Size 504.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d9a5adf842833b8b30a3f44368b9ddff4e7cf31bfdeeea2d87af0900c6608711
BLAKE2b-256 checksum
How to use checksums
455f98ec191cac3e0e08a83432a4b3fa03d0ddaaf42abc1d63cb32331e49c8a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp37-cp37m-macosx_10_14_x86_64.whl

Download URL dulwich-0.20.10-cp37-cp37m-macosx_10_14_x86_64.whl
Size 449.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
695edfbecb7000db1c7ee48c062e14a8182fc5446579d2cdf5239aeec4228de5
BLAKE2b-256 checksum
How to use checksums
49572ddfdcd37e82ed6789f01ba8e2d5f76a4279a83fa966be7d61adffe687b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.9

Release files / dulwich-0.20.10-cp36-cp36m-win_amd64.whl

Download URL dulwich-0.20.10-cp36-cp36m-win_amd64.whl
Size 460.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
6dcae807b2285d7cd4bcfc7d7a66aa98804c6174803bef3456baf62029076644
BLAKE2b-256 checksum
How to use checksums
ebf8258ba5c8e2570b480507cc06d7c02095880ab92848a10610c58dff4b080f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.8

Release files / dulwich-0.20.10-cp36-cp36m-manylinux2010_x86_64.whl

Download URL dulwich-0.20.10-cp36-cp36m-manylinux2010_x86_64.whl
Size 501.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
24f0b139d47fde65700e2e5a2e78cbcc1a7387469ea090fe42c7766161368fb8
BLAKE2b-256 checksum
How to use checksums
8af2ebe7d1cc709c0d284e4707c335237813e3b1a89b1cfcda99965535594e7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp36-cp36m-manylinux1_x86_64.whl

Download URL dulwich-0.20.10-cp36-cp36m-manylinux1_x86_64.whl
Size 501.2 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
136ad64a1564f506357501586fd17fae36c6fb23942222c32808402d436b82f5
BLAKE2b-256 checksum
How to use checksums
bc1c15f2af370afec2900152277764decbcc1ceec441a3bcbec757c638327f93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

Release files / dulwich-0.20.10-cp36-cp36m-macosx_10_14_x86_64.whl

Download URL dulwich-0.20.10-cp36-cp36m-macosx_10_14_x86_64.whl
Size 449.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
f42a602b0724a228397011b8af539cb0be0737f722e0e0b5edf95f85e225e968
BLAKE2b-256 checksum
How to use checksums
a8ec21e9b07d553289e3d3136a262071eb882655927b8614e4832f4962680d55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.12

Release history Release notifications | RSS feed

1.2.7

42 release files

1.2.6

42 release files

1.2.5

42 release files

1.2.4

42 release files

1.2.3

42 release files

1.2.2

42 release files

1.2.1

42 release files

1.2.0

42 release files

1.1.0

36 release files

1.0.0

26 release files

0.20.40

1 release file

0.20.39

1 release file

0.20.38

1 release file

0.20.36

1 release file

0.20.31

1 release file

This release

0.20.10 This release

16 release files

0.20.9

9 release files

0.20.8

9 release files

0.20.7

7 release files

0.19.10

1 release file

0.19.9

1 release file

0.19.8

1 release file

0.19.7

1 release file

0.19.6

1 release file

0.19.5

1 release file

0.19.4

1 release file

0.19.3

1 release file

0.19.2

1 release file

0.19.1

1 release file

0.19.0

1 release file

0.18.6

1 release file

0.18.5

1 release file

0.18.4

1 release file

0.18.3

1 release file

0.18.2

1 release file

0.18.1

1 release file

0.18.0

1 release file

0.17.3

1 release file

0.17.2

1 release file

0.17.1

1 release file

0.16.3

1 release file

0.16.2

1 release file

0.16.1

1 release file

0.16.0

1 release file

0.15.0

1 release file

0.14.1

1 release file

0.14.0

1 release file

0.13.0

1 release file

0.12.0

1 release file

0.11.2

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.0

1 release file

0.9.9

1 release file

0.9.8

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

0.8.7

0.8.6

0.8.5

0.8.4

0.8.3

0.8.2

0.8.1

0.8.0

0.7.1

0.7.0

0.6.2

0.6.1

0.6.0

0.5.0

0.4.1

0.4.0

0.3.3

0.3.2

0.3.1

0.3.0

0.2.1

0.1.1

0.1.0

0.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page