Thread overview
derelict-git2: A dynamic binding to libgit2 library
Jun 18, 2017
Anton Fediushin
Jun 18, 2017
Sönke Ludwig
Jun 18, 2017
Anton Fediushin
June 18, 2017
I am happy to announce the derelict-git2.

derelict-git2 is a dynamic binding to libgit2 v0.25.1 (latest stable release) for the D programming language.

I created it because existing binding[1] is dead as well as high-level wrapper[2].
Dynamic bindings are much easier to use, although they are more complex in development.

Also, I could help if somebody wants to create a wrapper on top of derelict-git2.

Check out project page on dub: http://derelict-git2.dub.pm
And create an issue on GitHub: https://github.com/ohdatboi/derelict-git2

[1] http://code.dlang.org/packages/libgit2
[2] http://code.dlang.org/packages/dlibgit
June 18, 2017
Am 18.06.2017 um 16:09 schrieb Anton Fediushin:
> I am happy to announce the derelict-git2.
> 
> derelict-git2 is a dynamic binding to libgit2 v0.25.1 (latest stable release) for the D programming language.
> 
> I created it because existing binding[1] is dead as well as high-level wrapper[2].
> Dynamic bindings are much easier to use, although they are more complex in development.
> 
> Also, I could help if somebody wants to create a wrapper on top of derelict-git2.
> 
> Check out project page on dub: http://derelict-git2.dub.pm
> And create an issue on GitHub: https://github.com/ohdatboi/derelict-git2
> 
> [1] http://code.dlang.org/packages/libgit2
> [2] http://code.dlang.org/packages/dlibgit

I haven't done anything on the high level wrapper for a while, because I didn't have the need for it, but I wouldn't call it dead. Unfortunately, the two PRs to upgrade to 0.25.1 have slipped past me, though - the one changing the bindings is merged now.

But the thing with libgit2 is that it is extremely annoying how quickly they break the API, especially since many different versions have to be supported at the same time as long as using the system packaged version is supposed to be possible.
June 18, 2017
On Sunday, 18 June 2017 at 15:47:44 UTC, Sönke Ludwig wrote:
> But the thing with libgit2 is that it is extremely annoying how quickly they break the API, especially since many different versions have to be supported at the same time as long as using the system packaged version is supposed to be possible.

Yes, v0.26.0RC2 is already released and it introduces breaking changes.
I'll just release next major version. If they don't care about backwards compatibility, why should I care?
Also, it's dynamic binding, so it doesn't require libgit2 during compilation and it throws exception, if there is an error at run time.

I can try to add derelict-git2 backend to dlibgit, so it can use both static and dynamic binding, but I don't know if this is a good idea. In this case I have to care about both static and dynamic bindings, which is a humongous amount of work.
I also can fork dlibgit and use just dynamic binding.