D
Contents
Tutorials
Build Tools
De facto official package and build management system for D. Will be included officially soon.
Premake has built-in support for D projects
meta build system in D
Makefile template for D projects
CMake D Projects
Fast incremental build tool intended for projects in D
Wild build system, used to build the PowerNex kernel
Compilers
The reference compiler for the D programming language. Stable, builds insanely fast, very good for learning and rapid prototyping/development. Currently the frontend is implemented in D, and shared between dmd, ldc and gdc, the backend is implemented in C++.
The LLVM-based D compiler. Uses the DMD frontend and LLVM backend. Builds slower than dmd, but generates more optimized code than DMD. It supports all the target platforms of LLVM.
GNU D Compiler. Use DMD frontend and GCC backend. Currently targets the most platforms due to the use of GCC. Generated code runs faster than DMD in most cases, on par with LDC. In the process of integration with the official GCC toolchain.
Alternative / WIP Compilers
Dev Tools
IDEs & Editors
Visual Studio extension for the D programming language.
Vim plugin that integrates various D development tools
Independent auto-complete program for the D programming language. Could be used with editors like vim, emacs, sublime text, textadept, and zeus. See editors support.
Language Server Protocol (LSP) implementation for D. Adds modern IDE features to any editor with LSP support (VSCode, Atom, Vim/Neovim and others)
Lexers, Parsers & Generators
A D language lexer and parser, (possibly) future standard D parser/lexer.
A lexer generator.
A D parser written in C# and used in Mono-D.
A Parsing Expression Grammar (PEG) module written in D.
Compile-Time Parser (with converter) Generator written in D.
LALR(1) Parser Generator written in D.
Preprocesors
Version Managers
GitHub Actions
Testing Frameworks
Programming Languages
Operating Systems
Bare Metal / Kernel Development
General Containers
Image Processing
image processing (8 and 16 bits per channel, floating point operations, filtering, FFT, HDRI, graphics formats support including JPEG and PNG)
basic color struct, HSL functions and reading and writing image files
Vladimir Panteleev's ae library has a package for image processing in functional style, which is described in the article Functional Image Processing in D.
Unofficial OpenCV binding for D
Core Utilities
Web Frameworks
HTTP client library inspired by python-requests
A simple, lightweight, and well-documented HTTP server that lets you bootstrap ideas and have something up and running in minutes.
Small and ready-to-go http server, in D
Cross-platform event loop library of asynchronous objects
HTTP/2 library in D, translated from nghttp2
A component library for Vibe that functions as a CMS.
A very newbility RPC Library for D, and it support 25+ languages now.
A static site generator with a different approach.
Data Serialization
Serialisation library for D
Google Protocol Buffer support in D.
A library for D that aims to provide the fastest possible implementation of some every day routines.
Convert between D types and std.json.
Phobos candidate for JSON serialization (based on Vibed)
Cache oriented string based JSON representation for fast read & writes and serialisation.
General purpose serializer (currently only supports XML)
Phobos candidate for a XML serialization
Successor of std.experimental.xml. DOM compatible, and also has a SAX parser.
Database Clients
Vibe.d has internal support for Redis and MongoDB, which are very stable. Soon, the database drivers will be separated into independent projects.
HibernateD is an ORM for D (similar to Hibernate).
A MySQL client implemented in native D.
Database access for D2. Currently only supports PostgreSQL.
DDBC is a DB Connector for D language (similar to JDBC). HibernateD (see below) uses ddbc for database abstraction.
An ORM for D with Vibe support. Works with vibe.d and mysql-d, giving it the ability to access MongoDB and MySQL.
Interact with a PocketBase database
CLI Libraries
A modern, powerful command line argument parser.
A command line and config file parser for DLang
A command-line fuzzy finder.
simple easy-to-use colorful logger for command-line applications
Utility library to aid writing script-like programs in D.
A processor for command-line arguments, an alternative to Getopt, written in D.
A D implementation of the expect framework. Handy for bash emulation.
CLI Applications
A literate programming tool for any language.
#1 Free OneDrive Client for Linux.
Fast file sharing from cli, using transfer.sh.
Todod is a command line based todo list manager. It also has support for shell interaction based on linenoise.
Soulseek server implementation in D.
GUI Libraries
GObject Introspection D Package Repository.
Cross Platform GUI for D programming language. My personal favorite, because it is written in D(not a binding), and is cross platform. DLangUI also has a good showcase in the IDE DLangIDE.
A tiny immediate-mode UI library.
GtkD is a D binding and OO wrapper of GTK+. GtkD is actively maintained and is currently the most stable GUI lib for D.
GUI toolkit for the D programming language based on Tcl/Tk.
Qt Qml bindings for the D programming language.
D bindings for the Sciter - crossplatform HTML/CSS/script desktop UI toolkit.
GUI Applications
Game Bindings
D bindings for raylib.
D bindings for the sokol headers.
D binding/wrapper to Allegro 5, a modern game programming library.
A static binding of SFML in a way that makes sense for D.
D language bindings for the Godot Engine's GDNative API.
BindBC
Graphics API
Window/Input library
Multimedia library
Drawing primitives for SDL2
Multimedia library
Immediate mode GUI
Immediate mode GUI
Game library
Cross-Platform renderer
Modern GPU API
Fast compression
Messaging library
Audio library
Audio library
UI widget toolkit
Vector graphics
Vector graphics
Scripting language
Gamepad/Gyro input
Physics library
Image loading
Font rendering
Text shaping
DerelictOrg
Graphics API
Networking library
Video codec
Audio codec
Audio codec
PostgreSQL library
Virtual file system
Physics library
Audio library
Image library
Game Libraries
Games math library for D.
A D port of Godot's linear algebra with unchanged semantics.
Virtual text mode with 8x8 Unicode font and markup language.
D gamedev toolkit.
A delightfully simple 2D game engine.
2D graphics engine written in D.
Cross Platform D-Lang Game Engine with scripting support.
lightweight, expressive, extensible 2D/3D game engine.
3D game engine for D. See: https://gecko0307.github.io/dagon/
Plugin-based client-server voxel game engine written in D language.
Games
Internationalization
Machine Learning
Nexflix's opensource deep learning framework.
bindbc bindings to Microsoft's cross-platform, high performance ML inferencing and training accelerator
Autograd and GPGPU library for dynamic neural networks in D
Tensorflow wrapper for D
Parallel Computing
Scientific
Text Processing
Logging
Configuration
Dependency Injection
Cryptography
Unmaintained
Advanced unit testing & mocking toolkit
A refined core library for D programming language. The module has concurrency / collection / event / io / logging / text / serialize and more.
A time library and similar to Joda-time and Java.time api.
A data validation library for DLang based on hunt library.
An asynchronous event-driven network framework written in dlang, like netty framework in D.
High-performance network library for D programming language, event-driven asynchonous implemention(IOCP / kqueue / epoll).
HTTP/1 and HTTP/2 protocol library for D.
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.
Grpc for D programming language, hunt-http library based.
Fast and light, flatbuffers based rpc framework.
A Apache V2 gossip protocol implementation for D programming language.
D language universal cache library, using radix, redis and memcached.
D Programming Language implementation of the google flatbuffers library.
Hunt entity is an object-relational mapping tool for the D programming language. Referring to the design idea of JPA, support PostgreSQL / MySQL / SQLite.
Hunt database abstraction layer for D programing language, support PostgreSQL / MySQL / SQLite.
Hunt console creation easier to create powerful command-line applications.
A library for creating cross-platform GUI applications. GWT is a port of the Java SWT library to D. DWT was promoted as a semi-standard GUI library for D, but unfortunately didn't catch up popularity yet.
Dynamic Binding for libui