Bindings for the D programming language
[http://www.dsource.org/projects/bindings Bindings]: Bunch of C language bindings for the D Programming Language.
[http://wxd.sourceforge.net/ wxD]: wxD is wxWidgets bindings for the D programming language.
[http://dronten.googlepages.com/fltk4d fltk4d]: binding to the gui library FLTK for the D programming language.
[http://shinh.skr.jp/d/porting.html D - porting]: SDL and OpenGL bindings.
[http://www.dsource.org/projects/dui gtkD]: D binding and OO wrapper of Gtk+ and is released on the LGPL license.
[http://www.dsource.org/projects/bcd BCD]: Bindings to C(++) in D. Its most notable component is bcd.gen, which generates C or C++ bindings from .h files.
[http://www.dsource.org/projects/derelict Derelict]: Collection of D bindings to C shared (dynamic) libraries which are useful for multimedia applications.
[http://code.google.com/p/dlua/ dlua]: Lua bindings for the D programming language.
[http://www.dsource.org/projects/tioport tioport]: Java to D convertion of whole libraries and applications.
HOWTO: generate a D binding from a C library
- Install gdc: apt-get install gdc-4.1
Get dsss from mentors: dget -x http://mentors.debian.net/debian/pool/main/d/dsss/dsss_0.72.1-1.dsc
- Build it with fakeroot debian/rules binary and install it
Get BCD: svn co http://svn.dsource.org/projects/bcd/trunk/bcd.gen
- Build it with dsss build and put the bcdgen executable in your PATH
Now, let's generate a binding for libalsaplayer (for example):
- mkdir tmp; cd tmp
for i /usr/include/alsaplayer/*.h ; do echo $i && bcdgen $i alsaplayer -C -b ; done
bcdgen $1 $2 will generate a binding for $1 header file in a $2 module, so all alsaplayer D headers will have to be included from alsaplayer.*;
-C option tell bcdgen this is a C header, and -b avoid 'bcd.' prefix for modules name.
You'll find your binding in ./bcd/$2