awesome-d
A curated list of awesome D documents, frameworks, libraries and software. Inspired by awesome-python.
AI summary
D language toolkit
A curated collection of resources and tools for the D programming language.
- stars
- 667
- forks
- 77
- watching
- 37
- awesome lists
- 10
- entries
- 252
What's in the list
252 links in 50 sections, with live GitHub stats.activeno commit in 2y
Official Website
- dlang.org
Official website for D
- wiki.dlang.org
Official Wiki for D
- code.dlang.org
Offical Library/Module Registry for D
- Github Organization
Official GitHub organization for D. Repo for all official D tools & code
- forum.dlang.org
Official forum. Many interesting discussions occurring on a daily basis
- blog.dlang.org
Official blog
- Language Specification
D programming language specification
- Issue tracking
Official issue tracking/reporting system for D. If you find bugs in the D compiler and/or libraries, please come and report them!
Getting Help
- Official D Forum Learn Group
Highest traffic site for answering D questions
- D on Stack Overflow
Less traffic than forums but possibly easier to search
- D on Rosetta Code
Examples of how to do many basic things in D
- D on Discord
Another very active community for D conversations and question
People
- Walter Bright
Father of D. Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages
- Andrei Alexandrescu, PhD
C++ guru. Author of and . With Walter Bright, Andrei co-designed many important features of D and authored a large part of D's standard library. Andrei works as a trainer in advanced C++ programming and algorithms and is now actively evangelizing D in the organization
Events
- DConf
the premier event where D luminaries exchange knowledge, insight, and inspiration on everything related to the D language and its ecosystem
Organizations
- D Programming Language
Official Organization, hosts DMD, Phobos and other official tools and libs
- LDC Developers
LDC releated projects
- DerelictOrg
A GitHub organization hosting all Derelict bindings including OpenGL and other multimedia/game related library bindings. (OpenGL 3, Bgfx, ENet, SDL 2, GLFW 3,OpenGLES, Free Image, Assimp3, libtheora, libogg, libvorbis, SFML 2, libpq, PhysicsFS, Open Dynamics Engine, Lua, DevIL, OpenAL, ALURE)
- DlangScience
-A focal point and first port of call for scientific libraries and tooling for D
- Circular Studios
We are a group of game developers at Rochester Institute of Technology building games and game tech. Hosts , a 3D game engine written in D, and other related libs
- EMSI
A Career building company that uses D as their main language. Hosts their opensource projects
- infognition
Infognition is a self-funded and self-sustained company specializing in video processing and compression technologies for end-users and developers. They provide several opensource video related applications & tools written in D, hosted on . They are also porting their main product-- from C/C++ to D
- libmir
D's numeric library development team
- sociomantic labs
Berlin based company specializing in real-time bidding for online advertising. Main sponsor of the . Has open-sourced large parts of their codebase as part of the organization
- Symmetry Investments
Symmetry Investments LP is an investment management company with approximately US$4.7 billion in assets under management as of 31 December 2018. Main sponsor of the . Have sponsored the development of , , , , and various other projects
- HuntLabs
A technology group using DLang. Have pure D language implementation of quickly develop server-side applications and build distributed system services
Books
- TDPL
by Andrei Alexandrescu
- Programming in D
A very detailed book about programming in D by Ali Çehreli covering many areas of the language. Has a free online version and is suitable for beginners
- D Cookbook
A recipe-packed reference guide filled with practical tasks that are concisely explained to develop and broaden the user's abilities with the D programming language. by Adam D. Ruppe. Here is an interesting
- Learning D
This book is intended for those with some background in a C-family language who want to learn how to apply their knowledge and experience to D. (...) This book will help you get up to speed with the language and avoid common pitfalls that arise when translating C-family experience to D
- D Web Development
Whether you are new to the world of D, or already have developed applications in D, or if you want to leverage the power of D for web development, then this book is ideal for you
Tutorials
- The Dlang Tour
An interactive tutorial for D, inspired by Golang Tour
- Programming in Dlang
An introductory video series about programming in D
- Pragmatic D tutorial
This is a pragmatic introduction to the D Programming Language. by Andreas Zwinkau
D Template Tutorial
A tutorial dedicated to D Templates. Very good explanation about templates. Has pdf version. by Philippe Sigaud
- Component programming in D
An article written by Walter Bright that details how D's functional support leads to a flexible and beautiful component programming style
- Component programming with ranges
A detailed blog post about how to do component programming in a idiomatic D way with ranges, with a full working example
- Functional image processing in D
A very interesting tutorial about writing an image processing lib in D. Shows the power of D's templates/CTFE/Ranges/UFCS for functional style programming
- OpenGL tutorials
OpenGL tutorials in D
- Creating a simple JSON serialiser in D
D metaprogramming tutorial series
- Let's learn D programming Game Dev!
A video series on learning game development with D from Ki Rill. also posts other videos related to D programming
- DLang YouTube Tutorials from Mike Shah
Series of tutorials covering basic to advanced features of the D programming language and standard library
Tutorials / Bare metal / kernel development
- D Bare bones
kernel hello world in D (using GDC compiler)
- D barebone with ldc2
another kernel hello world in D (using LDC compiler)
- XOmB bare bones
an exokernel operating system written in D. ,
- Bare Metal ARM Cortex-M GDC Cross Compiler
building a bare metal ARM Cortex-M (arm-none-eabi) GDC cross compiler for a Linux host
Blogs
- blog.dlang.org
Official blog
- /r/d_language on Reddit
A feed of news and blog posts about D
- This week in D
A weekly overview of activity in the D community and brief advice columns to help you get the most out of the D Programming Language
- Planet D
A repository of co-authored D-specific blogs maintained by Vladimir Panteleev
- D Idioms
A great blog for many useful idioms with D programming
- GTK-D coding
Simple examples of how to use GtkD to build GUI applications
- Tasty D
A blog about learning the D programming language and various D language trivia
Articles
- Origins of the D programming language
By Walter Bright, Andrei Alexandrescu, Michael Parker. The history and development of D language
- Purity in D
An article that explains the design principles behind D's purity feature
- Hidden treasures in the D standard library
An article talking about several useful functions and templates in Phobos
- Porting D Runtime to ARM
A study about porting a minimal D runtime to ARM Cortex-M preprocessors
- D is for Data Science
A great post about how D is suitable for data science, particularly, replacing the role of python scripts for fast prototyping
Package Management
- code.dlang.org
Official D library repository. Backed by dub
dub
Official package and build management system for D
Compilers
dmd
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++
ldc
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
gdc
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
WIP Compilers
sdc
The Snazzy D Compiler. Written in D. Grows Smarter every day
Dev Tools
Build Tools
dub
De facto official package and build management system for D. Will be included officially soon
- scons-d
Scons has built-in support for building D projects, thanks to Russel Winder
premake
Premake has built-in support for D projects
reggae
meta build system in D
Makefile
Makefile template for D projects
cmake-d
CMake D Projects
cook2
Fast incremental build tool intended for projects in D
- button
A universal build system to build your software at the push of a button
wild
Wild build system, used to build the kernel
- XMake
XMake is a crossplatform build system, that incorporated the D language and also has support for DUB repositories
wox
A highly flexible recipe build system inspired by Make
IDEs & Editors
Visual D
Visual Studio extension for the D programming language
- IntelliJ D Language
Support for the D programming language within IntelliJ IDEA
- Dexed
IDE for the D programming language, its compilers, tools and libraries
Dutyl
Vim plugin that integrates various D development tools
- code-d
Visual Studio Code extension using serve-d
- ide-d
Atom extension for D using serve-d
DCD
Independent auto-complete program for the D programming language. Could be used with editors like vim, emacs, sublime text, textadept, and zeus. See
serve-d
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, Parser Generators
libdparse
A D language lexer and parser, (possibly) future standard D parser/lexer
Martin Nowak's Lexer
A lexer generator
Mono-D's DParser
A D parser written in C# and used in Mono-D
Pegged
A Parsing Expression Grammar (PEG) module written in D
- Goldie
Goldie Parsing System
ctpg
Compile-Time Parser (with converter) Generator written in D
dunnart
LALR(1) Parser Generator written in D
Preprocesors
warp
A fast preprocessor for C and C++ used in Facebook infrastructure. Written by Walter Bright
Javascript
higgs
Higgs JavaScript Virtual Machine, implemented in D
Basic
hunt
A refined core library for D programming language. The module has concurrency / collection / event / io / logging / text / serialize and more
hunt-time
A time library and similar to Joda-time and Java.time api
hunt-validation
A data validation library for DLang based on hunt library
Containers
EMSI containers
Containers that do not use the GC
memutils
Overhead allocators, allocator-aware containers and lifetime management for D objects
dlib.container
generic data structures (GC-free dynamic and associative arrays and more)
std.rcstring
A reference counted string implementation for D's build in string construct
GitHub Actions
setup-dlang
Install D compilers & DUB inside GitHub Actions
dub-upgrade
Run trying to repeat on network failure and using package cache on GitHub Actions
Testing Frameworks
- silly
Better test runner for the D programming language. No nonsense
dunit
Advanced unit testing & mocking toolkit
unit-threaded
Multi-threaded unit test framework
Web Frameworks
hunt-net
High-performance network library for D programming language, event-driven asynchonous implemention(IOCP / kqueue / epoll)
hunt-http
HTTP/1 and HTTP/2 protocol library for D
hunt-stomp
STOMP for websocket protocol library implement in D
libasync
Cross-platform event loop library of asynchronous objects
libhttp2
HTTP/2 library in D, translated from nghttp2
collie
An asynchronous event-driven network framework written in dlang, like netty framework in D
dlang-requests
HTTP client library inspired by python-requests
Handy-Httpd
A simple, lightweight, and well-documented HTTP server that lets you bootstrap ideas and have something up and running in minutes
serverino
Small and ready-to-go http server, in D
Hunt Framework
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
- vibe.d
Asynchronous I/O Web Framework that doesn’t get in your way, written in D
arsd
Adam D. Ruppe's web framework
cmsed
A component library for Vibe that functions as a CMS
grpc
Grpc for D programming language, hunt-http library based
kissrpc
Fast and light, flatbuffers based rpc framework
Hprose
A very newbility RPC Library for D, and it support 25+ languages now
- Apache Thrift
A lightweight, language-independent, featureful RPC framework. Thrift provides clean abstractions for data transport, data serialization, code generation, and application level processing
hunt-gossip
A Apache V2 gossip protocol implementation for D programming language
hunt-cache
D language universal cache library, using radix, redis and memcached
DSSG
A static site generator with a different approach
Data serialization / Binary Serilization
flatbuffers
D Programming Language implementation of the google flatbuffers library
cerealed
Serialisation library for D
dproto
Google Protocol Buffer support in D
Data serialization / JSON
- vibe.data.json
JSON functions in Vibe.d. Currently the best implementation I used
fast.json
A library for D that aims to provide the fastest possible implementation of some every day routines
- std.json
D's standard library JSON module. Needs refinement
painlessjson
Convert between D types and std.json
std.data.json
Phobos candidate for JSON serialization (based on Vibed)
asdf
Cache oriented string based JSON representation for fast read & writes and serialisation
Data serialization / XML
orange
General purpose serializer (currently only supports XML)
std.experimental.xml
Phobos candidate for a XML serialization
dom.d
arsd - an xml/html DOM based on what Javascript provides in browsers
Database clients
hunt-entity
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
Hunt database abstraction layer for D programing language, support PostgreSQL / MySQL / SQLite
vibe.d
Vibe.d has internal support for Redis and MongoDB, which are very stable. Soon, the database drivers will be separated into independent projects
mysql-native
A MySQL client implemented in native D
ddb
Database access for D2. Currently only supports PostgreSQL
arsd
Adam D. Ruppe's library; in addition to a Web backend, it also has support for database access with database.d, sqlite.d, mysql.d and postgres.d
ddbc
DDBC is a DB Connector for D language (similar to JDBC). HibernateD (see below) uses ddbc for database abstraction
hibernated
HibernateD is an ORM for D (similar to )
dvorm
An ORM for D with Vibe support. Works with vibe.d and mysql-d, giving it the ability to access MongoDB and MySQL
- Tiny Redis
Redis driver for D. Fast, Simple, Stable. Has no dependencies
libpb
INteract with a PocketBase database
Command Line
hunt-console
Hunt console creation easier to create powerful command-line applications
tilix
A tiling terminal emulator for Linux using GTK+ 3
scriptlike
Utility library to aid writing script-like programs in D
todod
Todod is a command line based todo list manager. It also has support for shell interaction based on
- d-colorize
A port of the ruby library . It add some methods to set color, background color and text effect on console easier using ANSI escape sequences
terminal.d
Part of Adam Ruppe's library supporting cursor and color manipulation on the console
dexpect
A D implementation of the expect framework. Handy for bash emulation
Argon
A processor for command-line arguments, an alternative to Getopt, written in D
argsd
A command line and config file parser for DLang
darg
Robust command line argument parsing for D
commandr
A modern, powerful commmand line argument parser
luneta
A command-line fuzzy finder
- argparse
Flexible parser of command line arguments
dlog
extensible logging framework with message transformation support and custom loggers and contexts
gogga
simple easy-to-use colorful logger for command-line applications
GUI Libs
DLangUI
Cross Platform GUI for D programming language. My personal favorate, because it is written in D(not a binding), and is cross platform. DLangUI also has a good showcase in the IDE
GtkD
GtkD is a D binding and OO wrapper of GTK+. GtkD is actively maintained and is currently the most stable GUI lib for D
DWT
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
tkD
GUI toolkit for the D programming language based on Tcl/Tk
dqml
Qt Qml bindings for the D programming language
Sciter-Dport
D bindings for the - crossplatform HTML/CSS/script desktop UI toolkit
LibUI
Dynamic Binding for
OS
Game Bindings
bindbc-loader
BindBC libraries - compatible, bindings using :
Game Bindings / bindbc-loader
bindbc-opengl
OpenGL -
bindbc-glfw
GLFW 3 -
bindbc-sdl
SDL 2 -
bindbc-sdlgfx
SDL2_gfx -
bindbc-sfml
SFML 2 -
bindbc-imgui
Imgui - immediate UI -
bindbc-nuklear
Nuklear - immediate UI -
bindbc-raylib3
raylib3 -
bindbc-bgfx
bgfx -
bindbc-wgpu
WebGPU -
bindbc-zstandard
Zstandard - compression -
bindbc-nng
nanomsg-next-gen -
bindbc-openal
OpenAL - audio engine -
bindbc-soloud
SoLoud - audio engine -
bindbc-kiwi
KiWi - widget library -
bindbc-nanovg
NanoVG - vector drawing engine -
bindbc-blend2d
Blend2D - 2D Vector Graphics Powered by a JIT Compiler -
bindbc-lua
Lua -
bindbc-jsl
JoyShockLibrary -
bindbc-newton
Newton Dynamics - physics engine -
bindbc-freeimage
FreeImage -
- bindbc-assimp
Assimp5 -
bindbc-freetype
Freetype -
bindbc-harfbuzz
Harfbuzz - text shaping engine -
Game Bindings
- DerelictOrg
A GitHub organization hosting all Derelict bindings including:
Game Engine Bindings
Godot-D
D language bindings for the Godot Engine's GDNative API
Game Frameworks
DGame
A 2D framework for the D programming Language. see
gfm
D gamedev toolkit
Dagon
3D game engine for D. see
Dash
A free and open 3D game engine written in D. see
DSFML
A static binding of SFML in a way that makes sense for D. see
DAllegro5
D binding/wrapper to Allegro 5, a modern game programming library
Voxelman
Plugin-based client-server voxel game engine written in D language
PolyplexEngine
libpp is an XNA like framework written in D
rengfx
lightweight, expressive, extensible 2D/3D game engine
Games
Spacecraft
A 3d multiplayer deathmatch space game written in D 2.0
Dtanks
Robot Tank Battle Game
Electronvolt (formerly Atrium)
FPS game with physics based puzzles using OpenGL
Backgammony
A Backgammon GUI for Linux built with Gtk
Internationalization
bindbc-icu
bindbc bindings for the unicode ICU library
Video applications
DerelictGL3
A dynamic binding to OpenGL for the D Programming Language
Image Processing
ArmageddonEngine
Vladimir Panteleev's ae library has a package for image processing in functional style, which is described in the article
- Blogsort
A simple Windows app for viewing photos and preparing them for a blog
dlib.image
image processing (8 and 16 bits per channel, floating point operations, filtering, FFT, HDRI, graphics formats support including JPEG and PNG)
color.d
+ , , - basic color struct, HSL functions and reading and writing image files
opencvd
Unofficial OpenCV binding for D
End-user applications
- Cryptic-Resolver
Manage cryptic commands' names, acronyms and your own knowledge base (a command line utility)
Inochi Creator
Tool to create and edit Inochi2D puppets
Literate
A literate programming tool for any language
onedrive
#1 Free OneDrive Client for Linux
Machine Learning
vectorflow
Nexflix's opensource deep learning framework
bindbc-onnxruntime
bindbc bindings to Microsoft's cross-platform, high performance ML inferencing and training accelerator
grain2
Autograd and GPGPU library for dynamic neural networks in D
tfd
Tensorflow wrapper for D
Parallel computing
DerelictCUDA
Dynamic bindings to the CUDA library for the D Programming Language
DerelictCL
Dynamic bindings to the OpenCL library for the D Programming Language
Scientific
scid
Scientific library for the D programming language
dstats
A statistics library for D
mir
Sandbox for some mir packages: sparse tensors, Hoffman and others
mir-algorithm
N-dimensional arrays (matrixes, tensors), algorithms, general purpose library
mir-random
Advanced Random Number Generators
- decimals
Decimal library for D
Scientific / Language Processing
bindbc-mecab
bindbc MeCab binding (Part-of-Speech and Morphological Analyzer for Japanese)
Text Processing
hunt-markdown
A markdown parsing and rendering library for D programming language. Support commonMark
eBay's TSV utilities
Filtering, statistics, sampling, joins and other operations on TSV files. Very fast, especially good for large datasets
Logging
- std.experimenatal.logger
Phobos's upcoming standard logging facility
dlogg
Logging for concurrent applications and daemons with lazy and delayed logging, support
Configuration
Blog Engine
mood
simple vibe.d based blog engine
Dependency Injection
Poodinis
A dependency injection framework for D with support for autowiring
Nothing in this list matches your filter.
Featured in 10 awesome lists
Each link jumps to the spot where the list mentions awesome-d.