Difference between revisions of "Bindings"
(links) |
(Add the BindBC project) |
||
(37 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Binding is a procedure that converts header files, function prototypes, and variable declarations to from another language to D. | |
− | |||
− | == | + | == Projects == |
− | + | Projects and repositories for collecting / maintaining D bindings: | |
− | == Deimos == | + | * [https://github.com/bindbc BindBC] |
− | https://github.com/D-Programming-Deimos | + | * [https://github.com/D-Programming-Deimos Deimos] |
+ | * [http://dsource.org/projects/bindings DSource bindings project] | ||
+ | |||
+ | == Binding generators == | ||
+ | Projects which automate generating D bindings: | ||
+ | |||
+ | === C/C++ to D === | ||
+ | |||
+ | {{Projects | ||
+ | | Projects = | ||
+ | |||
+ | {{Project | ||
+ | | name = '''dstep''' | ||
+ | | about = A tool for converting C and Objective-C headers to D modules | ||
+ | | platform = Posix, Windows | ||
+ | | license = Boost Software License 1.0 | ||
+ | | url = https://github.com/jacob-carlborg/dstep | ||
+ | }} | ||
+ | |||
+ | {{Project | ||
+ | | name = '''dpp''' | ||
+ | | about = #include C headers in D code | ||
+ | | platform = | ||
+ | | license = Boost License 1.0. | ||
+ | | url = https://github.com/atilaneves/dpp | ||
+ | }} | ||
+ | |||
+ | {{Project | ||
+ | | name = '''SWIG''' | ||
+ | | about = Simplified Wrapper and Interface Generator | ||
+ | | platform = | ||
+ | | license = | ||
+ | | url = http://www.swig.org/Doc4.0/D.html | ||
+ | }} | ||
+ | |||
+ | {{Project | ||
+ | | name = '''cwrap''' (abandoned) | ||
+ | | about = High-level wrapper generator | ||
+ | | platform = | ||
+ | | license = Boost License 1.0. | ||
+ | | url = https://bitbucket.org/denis-sh/cwrap | ||
+ | }} | ||
+ | |||
+ | {{Project | ||
+ | | name = '''htod''' (not actively developed) | ||
+ | | about = Migration tool to aid in converting C header files | ||
+ | | platform = Windows | ||
+ | | license = | ||
+ | | url = http://dlang.org/htod.html | ||
+ | }} | ||
+ | |||
+ | }} | ||
+ | |||
+ | === Objective-C to D === | ||
+ | |||
+ | * [https://github.com/jacob-carlborg/dstep dstep] | ||
+ | |||
+ | === D to C/C++ === | ||
+ | |||
+ | * [https://issues.dlang.org/show_bug.cgi?id=9285 dtoh] | ||
+ | |||
+ | == Bindings == | ||
+ | === Web === | ||
+ | {{Projects | ||
+ | | Projects = | ||
+ | |||
+ | {{Project | ||
+ | | name = '''librdf/redland''' | ||
+ | | about = Multiple language bindings for librdf (advanced RDF and SPARQL support) | ||
+ | | platform = all | ||
+ | | license = multiple FOSS licenses | ||
+ | | url = https://github.com/vporton/redland-bindings | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | === Compression & Encryption === | ||
+ | {{Projects | ||
+ | | Projects = | ||
+ | |||
+ | {{Project | ||
+ | | name = '''OpenSSL''' | ||
+ | | about = D version of the C headers for openssl | ||
+ | | platform = Windows/POSIX | ||
+ | | license = MIT | ||
+ | | url = https://github.com/D-Programming-Deimos/openssl | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''liblzma''' | ||
+ | | about = Interface to LZMA compression library | ||
+ | | platform = Windows/POSIX | ||
+ | | license = | ||
+ | | url = https://github.com/D-Programming-Deimos/liblzma | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''GNUTLS''' | ||
+ | | about = Interface to GNUTLS library | ||
+ | | platform = | ||
+ | | license = LGPL | ||
+ | | url = https://github.com/opticron/libdtls | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | === Multimedia & Games === | ||
+ | {{Projects | ||
+ | | Projects = | ||
+ | {{Project | ||
+ | | name = '''MediaInfo''' | ||
+ | | about = MediaInfo supplies technical and tag information about your video or audio files. | ||
+ | | platform = Windows | ||
+ | | license = GPL/LGPL | ||
+ | | url = https://github.com/D-Programming-Deimos/libmediainfo | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''libsndfile''' | ||
+ | | about = Libsndfile is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. It is released in source code format under the Gnu Lesser General Public License. | ||
+ | | platform = Windows/POSIX | ||
+ | | license = LGPL | ||
+ | | url = https://github.com/D-Programming-Deimos/libsndfile | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''Allegro''' | ||
+ | | about = Allegro 4 and Allegro 5 are cross-platform, open source, game programming libraries, primarily for C and C++ developers. | ||
+ | | platform = | ||
+ | | license = | ||
+ | | url = http://www.dsource.org/projects/dallegro | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''DerelictOrg''' | ||
+ | | about = DerelictOrg is a collection of D bindings to C shared (dynamic) libraries which are useful for multimedia applications, with a heavy bias toward game development-related libraries. | ||
+ | Bindings: | ||
+ | * ALURE | ||
+ | * ASSIMP | ||
+ | * DevIL | ||
+ | * FreeImage | ||
+ | * FreeType | ||
+ | * GLFW | ||
+ | * Lua | ||
+ | * ODE | ||
+ | * OpenAL | ||
+ | * OpenGL | ||
+ | * PhysicsFS | ||
+ | * SDL2 | ||
+ | * SFML2 | ||
+ | * Vorbis | ||
+ | * libogg | ||
+ | * libpq | ||
+ | Older versions: | ||
+ | * [http://www.dsource.org/projects/derelict Original DSource project] | ||
+ | * [http://www.dsource.org/projects/derelict/browser/branches/Derelict2 Derelict 2 branch] | ||
+ | * [https://github.com/aldacron/Derelict3 Derelict 3] | ||
+ | | platform = | ||
+ | | license = | ||
+ | | url = https://github.com/DerelictOrg | ||
+ | }} | ||
+ | {{Project | ||
+ | | name = '''AntTweakBarD''' | ||
+ | | about = AntTweakBarD is a binding to AntTweakBar which is a multi-render-engine (D3D/OpenGL) GUI tweaking library. | ||
+ | | platform = | ||
+ | | license = zlib/libpng | ||
+ | | url = https://github.com/d-gamedev-team/AntTweakBarD | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | == Source code translators == | ||
+ | |||
+ | * [http://rainers.github.io/visuald/visuald/CppConversion.html cpp2d] - C++ to D converter (included with Visual D) | ||
+ | * [https://github.com/dlang/visuald/blob/master/c2d/idl2d.d idl2d] - IDL / C++ header file to D converter | ||
+ | |||
+ | == See also == | ||
+ | |||
+ | * [[D binding for C]] | ||
+ | * [[Binding generators]] | ||
+ | |||
+ | ==External links== | ||
+ | * [http://www.gamedev.net/page/resources/_/technical/game-programming/binding-d-to-c-r3122 Article] | ||
+ | * [http://www.gamedev.net/blog/1140/entry-2254003-binding-d-to-c/ Series on creating bindings to C libraries for the D programming language]. | ||
+ | * [http://dlang.org/interfaceToC.html Interfacing to C (DLang page)] | ||
+ | * [http://dlang.org/htod.html DLang htod tool] | ||
+ | |||
+ | [[Category:Binding]] |
Latest revision as of 01:43, 11 May 2021
Binding is a procedure that converts header files, function prototypes, and variable declarations to from another language to D.
Contents
Projects
Projects and repositories for collecting / maintaining D bindings:
Binding generators
Projects which automate generating D bindings:
C/C++ to D
Objective-C to D
D to C/C++
Bindings
Web
Title / Info | Description | License | Platform | |
---|---|---|---|---|
Multiple language bindings for librdf (advanced RDF and SPARQL support) | multiple FOSS licenses | all |
Compression & Encryption
Title / Info | Description | License | Platform | |
---|---|---|---|---|
D version of the C headers for openssl | MIT | Windows/POSIX | ||
Interface to LZMA compression library | Windows/POSIX | |||
Interface to GNUTLS library | LGPL |
Multimedia & Games