www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - derelict-git2: A dynamic binding to libgit2 library

reply Anton Fediushin <fediushin.anton yandex.ru> writes:
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
Jun 18 2017
parent reply =?UTF-8?Q?S=c3=b6nke_Ludwig?= <sludwig outerproduct.org> writes:
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.
Jun 18 2017
parent Anton Fediushin <fediushin.anton yandex.ru> writes:
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.
Jun 18 2017