Open Source Projects

From D Wiki
Revision as of 21:43, 11 May 2015 by O3o (talk | contribs) (D source code tools)
Jump to: navigation, search

Also, see here for a list of D projects on github.

Documentation Generators

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
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
Icon dpackage 48.png
Scod is a clean and lightweight theme for ddox, simply use It as drop-in replacement. MIT Cross-platform
Icon dpackage 48.png
Adrdox is the underlying documentation generator of dpldocs.info Boost Cross-platform
Icon dpackage 48.png
Ddoc is the builtin documentation generation in DMD. It is used by most notably Phobos and Mir (mir-random) Boost Cross-platform
Icon dpackage 48.png
Documentation generator for D compatible with DDoc. Boost Cross-platform
Icon dpackage 48.png
Documentation generator for D with Markdown support, based on Harbored. Boost Cross-platform
Icon dpackage 48.png
CanDyDOC is fileset for creating advanced documentation of programs written in D programming language. Public Domain Cross-platform
Icon dpackage 48.png
DDoc theme using Bootstrap for styling. MIT Cross-platform
Icon dpackage 48.png
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

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
Tool for analyzing D source code. Boost 1.0 Platform-independent
Icon dpackage 48.png
The D Completion Daemon is an auto-complete program for the D programming language. GNU GPLv3 Platform-independent



Troubleshooting compilation problems

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
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
LDC-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
GDC-Linux
LDC-Linux
GDC-Win32/64

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
GDC-MacOS
LDC-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

Title / InfoDescriptionLicensePlatform
Hunt-icon-48x48.png
Hunt is a high-level D Programming Language Web framework that encourages rapid development and clean, pragmatic design. It lets you build high-performance Web applications quickly and easily. Apache 2.0 Windows, FreeBSD, macOS, Linux
Logo-vibed-48x48.png
Asynchronous I/O and web development framework for D, providing a fiber based blocking programming model with a concise API. Comes with database support for MongoDB and Redis. MIT Windows, POSIX
Diamond-mvc.png
A full-stack web framework build on-top of vibe.d targeting enterprise development. It's a stable and fully functional framework and requires minimal to no D knowledge to use. MIT Windows, POSIX, Cloud-platforms (Azure, Heroku, AWS)
Icon dpackage 48.png
Tiny Redis is a Redis driver for D2. It is intentionally minimal, fast, simple and has no dependencies. ISC Windows, POSIX

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 / InfoDescriptionLicensePlatform
Icon dpackage 48.png
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 Logo 48x48.png
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
Icon dpackage 48.png
Qt bindings for D BSD 2-clause Windows/Linux/Mac OS X
Icon dpackage 48.png
Qt Qml bindings for the D programming language LGPLv3 Windows/Linux
Icon dpackage 48.png
It is wrapper Qt-5 for programming language D. Boost 1.0 Windows/Linux/Mac OS X
Icon dpackage 48.png
wxD is D programming language bindings for wxWidgets, providing a portable GUI toolkit for D. wxWidgets(GNU LGPL based) Windows/Linux/Mac OS X
Icon dpackage 48.png
Testing use of C++ FLTK GUI lib from D code Academic Free License
Icon dpackage 48.png
GUI toolkit for the D programming language based on Tcl/Tk MIT License (MIT) Windows/Linux/Mac OS X
Icon dpackage 48.png
dtk is a D wrapper of the Tcl/Tk graphics library. Boost Windows/Linux/Mac OS X
Icon dpackage 48.png
Sciter engine bindings for creating HTML/CSS/scripting based multi-platform desktop apps MIT Windows/Linux
Icon dpackage 48.png
Awesomium wrapper and WebView GUI library for D programming language.  ?? Windows/Linux
Icon dpackage 48.png
Dynamic bindings to the libui c library. MIT Windows/Linux/Mac OS X
Icon dpackage 48.png
Complete OO interfaces of libui in D MIT Windows/Linux/Mac OS X
Icon dpackage 48.png
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 / InfoDescriptionLicensePlatform
Icon dpackage 48.png
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
Icon dpackage 48.png
DFL unofficial fork In license.txt Windows
Icon dpackage 48.png
DFL FrankLike fork unofficial fork, now dfl can be build by dco. LGPL 3.0 Windows
Icon dpackage 48.png
Yet another DFL fork Boost Windows
Icon dpackage 48.png
DGui is a graphic library for Windows that aims to make windows applications with small effort. Boost 1.0 Windows
Icon dpackage 48.png
A library for creating basic Win32 Apps with just a small amount of code.  ?? Windows
Icon dpackage 48.png
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
Icon dpackage 48.png
A GUI library written in D Boost Windows/Linux


General Purpose Libraries

Title / InfoDescriptionLicensePlatform
Hunt-icon-48x48.png
Containers, event, async io, caching, logging, time, serialization and other core components are included. Apache 2.0 Windows, FreeBSD, macOS, Linux
Icon dpackage 48.png
General purpose library aimed to be an addition to the D standard library Phobos. Boost 1.0 Platform-independent
Icon dpackage 48.png
A common type and function library for D language programs MIT Platform-independent
Dlib-logo-48x48.png
Linear algebra, geometry, image processing, data streams, filesystem abstraction, XML parsing. Boost 1.0 Windows, POSIX
Icon dpackage 48.png
Open (and multi) methods. Virtual functions as free functions. Solves the Expression Problem. Boost 1.0 Platform-independent

Game development and Multimedia

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
A collection of dynamic D bindings to C libraries, useful for multimedia and game development. Boost Windows, POSIX
Icon dpackage 48.png
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
Icon dpackage 48.png
Game-oriented math library in style of GLSL builtin types/functions. Vectors, matrices, frustums, etc. MIT Platform-independent
Icon dpackage 48.png
Game oriented linear algebra, fixed point, memory alloc, containers, bindings, etc. Unlicense (public domain) Windows, POSIX
Icon dpackage 48.png
High-level OpenGL wrapper for D. MIT Windows, POSIX
Icon dpackage 48.png
Component-based entity system framework for D. New BSD License Platform-independent
Icon dpackage 48.png
A port of the Box2D physics library for 2D games. zlib Platform-independent
Icon dpackage 48.png
A port of the Chipmunk2D physics library for 2D games. MIT Platform-independent
Icon dpackage 48.png
3D game engine. Boost Windows, POSIX
Icon dpackage 48.png
3D physics engine (rigid body dynamics) written in D. Boost Platform-independent
Icon dpackage 48.png
Various game development utilities, including graphics, networking, image processing, OS utilities, etc. MPL, Public Domain Windows, POSIX
Icon dpackage 48.png
A port of the imgui OpenGL GUI library. zlib Platform-independent
Icon dpackage 48.png
Esoteric Software Spine runtime binding for D. MIT Platform-independent
Icon dpackage 48.png
Dynamic bindings to the raylib library. Boost Platform-independent



Serialization

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
Thrift is a framework for scalable cross-language services development (serialization/RPC) and supports D out of the box. Apache License v2.0 Windows/POSIX
Icon dpackage 48.png
Binary serialisation library for D. Minimal to no boilerplate necessary. BSD like Windows/POSIX
DYAML-logo.png
YAML is a serialization format aimed at speed and human readability. D:YAML is a YAML parser in D, originally based on PyYAML. Boost 1.0 Platform-independent
Icon dpackage 48.png
MessagePack is a binary-based JSON-like serialization library. msgpack-d is a pure D implementation of MessagePack. Boost 1.0 Windows/POSIX
Icon dpackage 48.png
Orange is a serialization library for the D programming language. It supports D1/Tango and D2/Phobos. Boost 1.0 Windows/POSIX
Icon dpackage 48.png
Yet Another JSON Library, which supports the stream parsing. yajl-d is a YAJL binding for D. Boost 1.0 Windows/POSIX
Icon dpackage 48.png
D library for versatile object serialization/deserialization, supporting integral types, arrays, and strings. MIT Linux

Databases

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
A database abstraction layer, support PostgreSQL / MySQL / SQLite. Apache 2.0 FreeBSD/Linux/Windows/MacOS
Icon dpackage 48.png
A lightweight and simple key-value database (store) build on top of std.json (dddb clone). MIT Linux
Icon dpackage 48.png
A lightweight and simple key-value database (store) build on top of std.json. MIT Linux
Icon dpackage 48.png
An object-relational mapping (ORM) framework for dlang's database, support PostgreSQL / MySQL / SQLite. Apache 2.0 FreeBSD/Linux/Windows/MacOS
Icon dpackage 48.png
D library to use SQLite GPL Windows/POSIX
Icon dpackage 48.png
D2 SQLite bindings and OO interface Boost  ??
Icon dpackage 48.png
This wrapper around SQLite in D Boost  ??
Icon dpackage 48.png
SQLite bridge library for D programming language see  ??
Icon dpackage 48.png
PostgreSQL, mySQL and SQLite simple binding. Boost Windows/POSIX
Icon dpackage 48.png
Yet another attempt to create a good interface to PostgreSQL Boost Windows/POSIX
Icon dpackage 48.png
Database access for D2. Currently, only PostgreSQL client Boost 1.0 POSIX
Icon dpackage 48.png
Allows to use JSON-RPC requests to PostgresSQL RDBMS. MIT POSIX
Icon dpackage 48.png
ArangoDB Driver. Boost 1.0 POSIX
Icon dpackage 48.png
DB access library similar to JDBC (supports PostgreSQL, MySQL, SQLite). Boost 1.0 Windows/POSIX
Icon dpackage 48.png
ORM for D (supports PostgreSQL, MySQL, SQLite). Boost 1.0 Windows/POSIX
Icon dpackage 48.png
Simple but powerful PostgreSQL library with support for both ORM and manual querying. MIT POSIX(Windows untested)

Scripting D applications

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
Lua for the D Programming Language MIT Windows/POSIX
Icon dpackage 48.png
Python for the D Programming Language MIT Windows/POSIX
Icon dpackage 48.png
Scheme interpreter in D Public domain Platform-independent
Icon dpackage 48.png
A simple & fast scripting language, written entirely in D. MIT Platform-independent

Text-to-speech

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
Text to speech library MIT Windows/POSIX


Bioinformatics specific

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
The DScience Project goal is to become an international association of developers of freely available D tools for computational molecular biology. LGPLv3+ Windows/POSIX
Icon dpackage 48.png
R/qtlHD (or qtlHD) is the next generation implementation of R/qtl. qtlHD is aimed at QTL analysis of high-density, high-throughput data; for example for RNA-seq. BSD Windows/POSIX
Icon dpackage 48.png
Library for high-performance processing of BAM, SAM, SFF. BioD aims to support more formats in the future. MIT Windows/POSIX

Instant messaging

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
IRC library MIT Windows/POSIX

Unit Testing Framework

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
D Unit Testing Framework. Boost 1.0 Windows/POSIX
Icon dpackage 48.png
xUnit Testing Framework for D (forked from jmcabo/dunit). Boost 1.0 Windows/POSIX
Icon dpackage 48.png
Multi-threaded unit test framework for D. BSD-3-Clause Windows/POSIX
Icon dpackage 48.png
Advanced unit testing toolkit. MIT Windows/POSIX
Icon dpackage 48.png
DMocks-revived is a mock object framework for the D Programming Language, written also in D. [1] Windows/POSIX
Icon dpackage 48.png
The extensible test runner for DLang MIT



Dependency Injection Containers

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
Dependency injection system for the D programming language
Icon dpackage 48.png
D Dependency Injection Framework MIT license
Icon dpackage 48.png
A dependency injection framework for D with support for autowiring. MIT license
Icon dpackage 48.png
Simple D Dependency Injection Framework Boost license Linux / Windows
Icon dpackage 48.png
Another dependency injection library for D MIT license Linux / Windows
Icon dpackage 48.png
A dependency injection library Linux / Windows

Alternative standard libraries / runtimes

Title / InfoDescriptionLicensePlatform
Icon dpackage 48.png
D2 port of Tango, the alternative D1 standard library BSD / AFL3
Icon dpackage 48.png
A collection of libraries and tools to compile D language programs for embedded systems with the gdc compiler. Boost
Icon dpackage 48.png
Minimalistic runtime / standard library for D
Icon dpackage 48.png
Minimalistic runtime for D
Icon dpackage 48.png
DMD fork which outputs C code instead of object files.
Icon dpackage 48.png
Druntime port to an ARM Cortex-M processor


Build Systems

Title / InfoDescriptionLicensePlatform
Dub-header.png
Easy to use build and package management tool for D2 with support for generating IDE projects and an online package registry MIT Windows, POSIX
Icon dpackage 48.png
A D tool that can automatically build D apps. Boost 1.0
Icon dpackage 48.png
This project seeks to provide complete support for the D2 language in cmake. MIT
Icon dpackage 48.png
An automatic build tool. Boost 1.0
Icon dpackage 48.png
A build configuration tool supporting D. New BSD License
Icon dpackage 48.png
A fast incremental build tool intended for D projects. Boost 1.0 Windows, GNU/Linux
Icon dpackage 48.png
Googles own buildtool - Correct, reproducible, fast builds for everyone. Apache License Version 2.0 JVM
Icon dpackage 48.png
Open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Apache License Version 2.0 Windows, GNU/Linux
Icon dpackage 48.png
A build system that aims to be fast, correct, and elegantly simple. MIT Windows, GNU/Linux
Icon dpackage 48.png
A (meta) build system with multiple front (D, Python, Ruby, Javascript, Lua) and backends (make, ninja, tup, custom). BSD-3 Linux
Icon dpackage 48.png
A framework for building bare-bones Win32 applications Windows