Open Source Projects
Also, see here for a list of D projects on github: https://github.com/search?l=D&q=d&type=Repositories
Contents
- 1 Documentation Generators
- 2 D source code tools
- 3 Troubleshooting compilation problems
- 4 Debugging support by compiler
- 5 Graphical debugger frontends
- 6 Specific Debugger Tutorials
- 7 Web Development
- 8 GUI Libraries
- 9 General Purpose Libraries
- 10 Game development and Multimedia
- 11 Serialization
- 12 Databases
- 13 Scripting D applications
- 14 Text-to-speech
- 15 Bioinformatics specific
- 16 Instant messaging
- 17 Unit Testing Framework
- 18 Dependency Injection Containers
- 19 Alternative standard libraries / runtimes
- 20 Build Systems
Documentation Generators
Title / Info | Description | License | Platform | |
---|---|---|---|---|
DDox is an alternative documentation generator for programs written in D. It aims to be fully compatible with Ddoc, and brings many additional features. | MIT | Cross-platform | ||
Documentation generator for D compatible with DDoc. | Boost | Cross-platform | ||
Documentation generator for D with Markdown support, based on Harbored. Used by DDocs.org. | Boost | Cross-platform | ||
CanDyDOC is fileset for creating advanced documentation of programs written in D programming language. | Public Domain | Cross-platform | ||
DDoc theme using Bootstrap for styling. | MIT | Cross-platform | ||
Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D. | GNU GPL | Windows/POSIX |
D source code tools
Troubleshooting compilation problems
Title / Info | Description | License | Platform | |
---|---|---|---|---|
DustMite, is a D source code minimization tool. It's helpful in finding toolchain problems. | Public Domain | Windows/POSIX |
To debug D programs you need to use a debugger that understands the format of the debug symbols information that your chosen compiler produces.
The quality of the debug symbols information might vary depending on which compiler you use and its underlying debug format. For example, some compiler configurations may present the names of variables and/or functions in it's C mangled form, instead of the natural D name.
Debugging support by compiler
Compiler+Platform | Format | Debugger | Supported functionality |
---|---|---|---|
DMD-Win32 | OMF | Mago/VisualD | Good support: Breakpoints; Stack frames; Mostly pretty names ('.' shows up as '@'); Variable inspection; Visual Studio based. |
Mago-MI | Good support: Breakpoints; Stack frames; Variable inspection; GDB/MI compatible interface for Mago debugger. | ||
WinDbg | Supplied with the main D compiler zip file download. Overview | ||
ddbg | Doesn't seem to be working well. Project no longer maintained. | ||
OllyDbg 2 | Reasonable support when assisted by cv2pdb; stack frames; mangled symbols; shows source code alongside disassembly. Note: v2.01 has a bug that may cause frequent crashes when reading PDB files. Details and patch here. | ||
DMD-Win64 |
COFF | Mago/VisualD | TODO: same level of support as for win32? Has issues with structs and pointers, break on D exceptions can no longer be toggled for unknown reasons. |
RemedyDB | Paid. Works better at certain duties than VS. Still in active development. Does not have an option for break on exceptions, but can be mitigated with putting a breakpoint into an exception CTOR. | ||
DMD-Linux |
DWARF | GDB | Good support: Breakpoints; Stack frames; Pretty names; Variable inspection; |
ZeroBUGS | "Modular debugger for C/C++/D programming languages (and virtually anything else that supports Stabs/DWARF debug formats)". Supported debugging functionality?? | ||
LDC-MinGW | DWARF | - | DWARF debug symbol info seems to be broken for LLVM compiled with MinGW note |
DMD-MacOS |
? | GDB | Limited/outdated support? According to Jacob Carlberg:
"D symbols need to be prefixed with an extra underscore." "Line numbers don't work." |
LLDB | ? |
Graphical debugger frontends
Frontends providing support to a command-line debugger mentioned in the previous section.
Debugger | Frontend | Description | Platform |
---|---|---|---|
GDB | Mono-D | MonoDeveloped-based full D IDE. Has integration with the GDB debugger.
"Debugging (using MonoDevelop’s integrated gdb support on Linux currently)" |
Linux? |
GDB | DDT | Eclipse-based IDE. Has integration with the GDB debugger, including D support. (Debugging support is based on Eclipse CDT) | Linux, Windows, MacOS |
GDB | Nemiver | Graphical frontend to the GDB debugger, which supports full D syntax from version 7.2. | Linux |
GDB | CGDB | Command line frontend to the GDB debugger, which supports full D syntax from version 7.2.Shows code and the GDB console in split windows. | Linux, MacOS |
GDB | DDD | GNU DDD is a graphical front-end for command-line debuggers such as GDB. Usual front-end features such as viewing source code, viewing variables, etc. | Linux |
GDB | Affinic Debugger | Affinic Debugger GUI .aka. ADG, is designed as a graphical user interface for various debuggers. This version is specifically targeted on GDB, the GNU debugger. | Linux, Windows, MacOS |
GDB | DlangIDE | D language IDE written in D. Supports GDB-MI compatible debuggers. | Linux, Windows, MacOS |
GDB | Dexed - GDB commander | Visual debugging with GDB in one of the IDE widget. | Linux |
mago-mi | DlangIDE | D language IDE written in D. Supports GDB-MI compatible debuggers. | Windows |
mago-mi | DDT | Eclipse-based IDE. Supports mago-mi debugger using GDB-MI interface. | Windows |
GDB / LLDB | VS Code with C/C++ Extension | Visual Studio Code along with the C/C++ extension which allows for debugging native applications. It is possible to use the extension's debugger with D. | Linux, MacOS |
GDB / LLDB / mago-mi | Native Debug (VS Code Extension) | Debugging through Visual Studio Code's debugging UI. | Linux, Windows, MacOS |
Specific Debugger Tutorials
Some video resources on learning debugging can be found here: Debugging with GDB (Linux demonstration), Debugging with lldb (Mac demonstration with LDC2 and DMD) (Note, as the quality of debug information improves you may get more information/abilities through your debugger over time). Please visit the Tutorials which may contain further resources.
Web Development
GUI Libraries
Note: this list may not always be up-to-date nor complete.
For an automatically updated GUI library list in DUB please check the GUI category. Note however that not all GUI libraries on this page are registered or visible on dub.
Wrappers
Title / Info | Description | License | Platform | |
---|---|---|---|---|
GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. | LGPL | Windows/POSIX/Mac OS X | ||
DWT is a library for creating cross-platform GUI applications. It's a port of the SWT Java library from Eclipse. DWT is compatible with D2 using the standard library (Phobos) and D1 using Tango. Now available on 32 and 64 bit, Linux and Windows. Old dsource.org page. | EPL-1.0 | Windows/Linux | ||
Qt bindings for D | BSD 2-clause | Windows/Linux/Mac OS X | ||
experimental bindings for a subset of Qt 5 | LGPL-3.0 | Windows/Linux/Mac OS X | ||
Qt Qml bindings for the D programming language | LGPLv3 | Windows/Linux | ||
It is wrapper Qt-5 for programming language D. | Boost 1.0 | Windows/Linux/Mac OS X | ||
wxD is D programming language bindings for wxWidgets, providing a portable GUI toolkit for D. | wxWidgets(GNU LGPL based) | Windows/Linux/Mac OS X | ||
Testing use of C++ FLTK GUI lib from D code | Academic Free License | |||
GUI toolkit for the D programming language based on Tcl/Tk | MIT License (MIT) | Windows/Linux/Mac OS X | ||
dtk is a D wrapper of the Tcl/Tk graphics library. | Boost | Windows/Linux/Mac OS X | ||
Sciter engine bindings for creating HTML/CSS/scripting based multi-platform desktop apps | MIT | Windows/Linux | ||
Awesomium wrapper and WebView GUI library for D programming language. | ?? | Windows/Linux | ||
Dynamic bindings to the libui c library. | MIT | Windows/Linux/Mac OS X | ||
Complete OO interfaces of libui in D | MIT | Windows/Linux/Mac OS X | ||
Delta enables you to create your UI using Embarcadero Delphi RAD Studio (FireMonkey) while all application code is written in D. | Boost 1.0 | Windows |
Native
Title / Info | Description | License | Platform | |
---|---|---|---|---|
D Forms Library is a graphical user interface library for Windows. The project as abandoned by its author but unofficial forks is alive. | In license.txt | Windows | ||
DFL unofficial fork | In license.txt | Windows | ||
DFL FrankLike fork unofficial fork, now dfl can be build by dco. | LGPL 3.0 | Windows | ||
Yet another DFL fork | Boost | Windows | ||
DGui is a graphic library for Windows that aims to make windows applications with small effort. | Boost 1.0 | Windows | ||
A library for creating basic Win32 Apps with just a small amount of code. | ?? | Windows | ||
Cross platform GUI library, a bit similar to Android UI API. Layouts, styles, themes, unicode, i18n, OpenGL based acceleration, widgets, DML - QML-like UI definition. | Boost 1.0 | Windows/Linux/Mac OS X/Android | ||
A GUI library written in D | Boost | Windows/Linux |
General Purpose Libraries
Game development and Multimedia
Title / Info | Description | License | Platform | |
---|---|---|---|---|
A collection of dynamic D bindings to C libraries, useful for multimedia and game development. | Boost | Windows, POSIX | ||
A cross-platform game programming library with up-to-date D bindings. (*The Derelict Project also includes different, but at the time of writing, older/stale bindings.) | Custom (BSD-like) | Windows, Linux (including Raspberry PI), Mac OSX, iPhone and Android | ||
Game-oriented math library in style of GLSL builtin types/functions. Vectors, matrices, frustums, etc. | MIT | Platform-independent | ||
Game oriented linear algebra, fixed point, memory alloc, containers, bindings, etc. | Unlicense (public domain) | Windows, POSIX | ||
High-level OpenGL wrapper for D. | MIT | Windows, POSIX | ||
Component-based entity system framework for D. | New BSD License | Platform-independent | ||
A port of the Box2D physics library for 2D games. | zlib | Platform-independent | ||
A port of the Chipmunk2D physics library for 2D games. | MIT | Platform-independent | ||
3D game engine. | Boost | Windows, POSIX | ||
3D physics engine (rigid body dynamics) written in D. | Boost | Platform-independent | ||
Various game development utilities, including graphics, networking, image processing, OS utilities, etc. | MPL, Public Domain | Windows, POSIX | ||
A port of the imgui OpenGL GUI library. | zlib | Platform-independent | ||
Esoteric Software Spine runtime binding for D. | MIT | Platform-independent | ||
Dynamic bindings to the raylib library. | Boost | Platform-independent |
Serialization
Databases
Title / Info | Description | License | Platform | |
---|---|---|---|---|
A database abstraction layer, support PostgreSQL / MySQL / SQLite. | Apache 2.0 | FreeBSD/Linux/Windows/MacOS | ||
A lightweight and simple key-value database (store) build on top of std.json (dddb clone). | MIT | Linux | ||
A lightweight and simple key-value database (store) build on top of std.json. | MIT | Linux | ||
An object-relational mapping (ORM) framework for dlang's database, support PostgreSQL / MySQL / SQLite. | Apache 2.0 | FreeBSD/Linux/Windows/MacOS | ||
D library to use SQLite | GPL | Windows/POSIX | ||
D2 SQLite bindings and OO interface | Boost | ?? | ||
This wrapper around SQLite in D | Boost | ?? | ||
SQLite bridge library for D programming language | see | ?? | ||
PostgreSQL, mySQL and SQLite simple binding. | Boost | Windows/POSIX | ||
Yet another attempt to create a good interface to PostgreSQL | Boost | Windows/POSIX | ||
Database access for D2. Currently, only PostgreSQL client | Boost 1.0 | POSIX | ||
Allows to use JSON-RPC requests to PostgresSQL RDBMS. | MIT | POSIX | ||
ArangoDB Driver. | Boost 1.0 | POSIX | ||
DB access library similar to JDBC (supports PostgreSQL, MySQL, SQLite). | Boost 1.0 | Windows/POSIX | ||
ORM for D (supports PostgreSQL, MySQL, SQLite). | Boost 1.0 | Windows/POSIX | ||
Simple but powerful PostgreSQL library with support for both ORM and manual querying. | MIT | POSIX(Windows untested) |
Scripting D applications
Text-to-speech
Title / Info | Description | License | Platform | |
---|---|---|---|---|
Text to speech library | MIT | Windows/POSIX |
Bioinformatics specific
Instant messaging
Title / Info | Description | License | Platform | |
---|---|---|---|---|
IRC library | MIT | Windows/POSIX |
Unit Testing Framework
Title / Info | Description | License | Platform | |
---|---|---|---|---|
D Unit Testing Framework. | Boost 1.0 | Windows/POSIX | ||
xUnit Testing Framework for D (forked from jmcabo/dunit). | Boost 1.0 | Windows/POSIX | ||
Multi-threaded unit test framework for D. | BSD-3-Clause | Windows/POSIX | ||
Advanced unit testing toolkit. | MIT | Windows/POSIX | ||
DMocks-revived is a mock object framework for the D Programming Language, written also in D. | [1] | Windows/POSIX | ||
The extensible test runner for DLang | MIT |
Dependency Injection Containers
Alternative standard libraries / runtimes
Title / Info | Description | License | Platform | |
---|---|---|---|---|
D2 port of Tango, the alternative D1 standard library | BSD / AFL3 | |||
A collection of libraries and tools to compile D language programs for embedded systems with the gdc compiler. | Boost | |||
Minimalistic runtime / standard library for D | ||||
Minimalistic runtime for D | ||||
DMD fork which outputs C code instead of object files. | ||||
Druntime port to an ARM Cortex-M processor |
Build Systems