

Dulwich, pure Python Git implementation - albertzeyer
https://github.com/jelmer/dulwich

======
albertzeyer
Along the lines:
[https://github.com/FriendCode/gittle](https://github.com/FriendCode/gittle)
high-level pure-Python Git library based on Dulwich.

Note that Dulwich is old. Some old discussion:
[https://news.ycombinator.com/item?id=2834183](https://news.ycombinator.com/item?id=2834183)

------
ryanackley
Slightly unrelated, I wrote a pure javascript git implementation here
[https://github.com/ryanackley/git-
html5.js](https://github.com/ryanackley/git-html5.js)

------
anton_gogolev
On an almost completely unrelated note, there's also Mercurial Core
reimplementation in C#:

[https://bitbucket.org/hglab/hgsharp](https://bitbucket.org/hglab/hgsharp)

------
diminish
What is the benefit for maintaining a git repo interface in pure python,
portability?

~~~
masklinn
1\. hg-git, both libraries were started by githubbers to get the market of
people-who-want-to-use-hg on github

2\. interfacing with git repos from python, doing so through subprocess is
less than enjoyable (and libgit2 basically didn't exist at the time) (and
requires C code, which may be a chore e.g. on windows)

~~~
jordigh
I wanted to speed up hg-git, since it's really slow for moderately-sized git
repos. The slowness seems to be all in Dulwich. Isn't it more desirable then
to have Python bindings to libgit?

~~~
dochtman
[http://www.pygit2.org/](http://www.pygit2.org/)

I think there's a bunch of speeding-up hg-git work floating around, notably
around Mozilla work. Some of that has been mentioned in the hg-git mailing
list.

------
drrotmos
There's also
[https://github.com/e-butik/Gittern](https://github.com/e-butik/Gittern) (made
by your's truly) which is a pure-PHP Git implementation (though not as
complete as Dulwich).

------
rsgalloway
Shameless plug for my dulwich-backed project, grit:

[https://github.com/rsgalloway/grit](https://github.com/rsgalloway/grit)

\- Python WSGI "Smart HTTP" server \- Limited remote object proxying \- Stream
blob data from remote repositories \- Hierarchical repos with top-down
inheritance \- Check out individual blobs \- Python and HTTP+JSON read/write
API \- Supports a centralized workflow \- Command line, Python and web UIs \-
Git not required

------
AaronO
I'm one of dulwich's contributors and Jelmer has done some great work on
Dulwich.

You might want to check out Gittle
([https://github.com/FriendCode/gittle](https://github.com/FriendCode/gittle)),
a high level library for managing git repos, I wrote using dulwich.

------
JoshTriplett
Nice, but I still prefer libgit2, which has bindings for numerous languages
including Python.

------
topbanana
Weird, I was just browsing for property around there

------
loxs
Everything that can be implemented in JavaScript, eventually will be
implemented in JavaScript

~~~
shocks
Huh? Except this is Python...

~~~
dbaupp
Despite being unrelated, the GP is still correct:
[https://github.com/creationix/js-git](https://github.com/creationix/js-git)

