awesome-d

D language toolkit

A curated collection of resources and tools for the D programming language.

A curated list of awesome D documents, frameworks, libraries and software. Inspired by awesome-python.

GitHub

664 stars
37 watching
77 forks
Language: D
last commit: 2 months ago
Linked from 10 awesome lists

dlang

Contents / 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!

Contents / 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

Contents / 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
Átila Neves

Contents / Events

DConf the premier event where D luminaries exchange knowledge, insight, and inspiration on everything related to the D language and its ecosystem

Contents / 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

Contents / 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

Contents / 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 230 about 3 years ago 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

Contents / 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

Contents / 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

Contents / 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
D Functional Garden

Contents / Package Management

code.dlang.org Official D library repository. Backed by dub
dub 678 15 days ago Official package and build management system for D

Contents / Compilers

dmd 2,975 6 days ago 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 1,212 7 days ago 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 357 almost 6 years ago 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

Contents / WIP Compilers

sdc 250 21 days ago The Snazzy D Compiler. Written in D. Grows Smarter every day

Contents / Dev Tools

D-Scanner 242 7 months ago Swiss-army knife for D source code (linting, static analysis, D code parsing, etc.)
dfmt 204 3 months ago formatter for D source code

Contents / Build Tools

dub 678 15 days ago 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 2 about 8 years ago Premake has built-in support for D projects
reggae 182 4 months ago meta build system in D
Makefile 20 over 8 years ago Makefile template for D projects
cmake-d 66 over 1 year ago CMake D Projects
cook2 25 over 1 year ago 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 6 over 8 years ago 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 0 over 1 year ago A highly flexible recipe build system inspired by Make

Contents / IDEs & Editors

Visual D 288 7 days ago 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 79 over 4 years ago 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 349 4 months ago 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 209 about 1 month ago Language Server Protocol (LSP) implementation for D. Adds modern IDE features to any editor with LSP support (VSCode, Atom, Vim/Neovim and others)

Contents / Lexers, Parsers, Parser Generators

libdparse 115 3 months ago A D language lexer and parser, (possibly) future standard D parser/lexer
Martin Nowak's Lexer 13 over 10 years ago A lexer generator
Mono-D's DParser 30 over 4 years ago A D parser written in C# and used in Mono-D
Pegged 534 about 1 year ago A Parsing Expression Grammar (PEG) module written in D
Goldie Goldie Parsing System
ctpg 45 over 9 years ago Compile-Time Parser (with converter) Generator written in D
dunnart 14 over 7 years ago LALR(1) Parser Generator written in D

Contents / Preprocesors

warp 527 about 3 years ago A fast preprocessor for C and C++ used in Facebook infrastructure. Written by Walter Bright

Contents / Javascript

higgs 875 over 1 year ago Higgs JavaScript Virtual Machine, implemented in D

Contents / Basic

hunt 95 10 months ago A refined core library for D programming language. The module has concurrency / collection / event / io / logging / text / serialize and more
hunt-time 2 over 3 years ago A time library and similar to Joda-time and Java.time api
hunt-validation 3 10 months ago A data validation library for DLang based on hunt library

Contents / Containers

EMSI containers 111 about 1 year ago Containers that do not use the GC
memutils 42 10 months ago Overhead allocators, allocator-aware containers and lifetime management for D objects
dlib.container 217 3 months ago generic data structures (GC-free dynamic and associative arrays and more)
std.rcstring 9 about 5 years ago A reference counted string implementation for D's build in string construct

Contents / GitHub Actions

setup-dlang 46 2 months ago Install D compilers & DUB inside GitHub Actions
dub-upgrade 1 over 1 year ago Run trying to repeat on network failure and using package cache on GitHub Actions

Contents / Testing Frameworks

silly Better test runner for the D programming language. No nonsense
dunit 62 almost 5 years ago Advanced unit testing & mocking toolkit
unit-threaded 122 4 months ago Multi-threaded unit test framework

Contents / Web Frameworks

hunt-net 20 almost 3 years ago High-performance network library for D programming language, event-driven asynchonous implemention(IOCP / kqueue / epoll)
hunt-http 31 over 2 years ago HTTP/1 and HTTP/2 protocol library for D
hunt-stomp 0 about 5 years ago STOMP for websocket protocol library implement in D
libasync 147 5 months ago Cross-platform event loop library of asynchronous objects
libhttp2 35 over 1 year ago HTTP/2 library in D, translated from nghttp2
collie 61 about 6 years ago An asynchronous event-driven network framework written in dlang, like netty framework in D
dlang-requests 156 6 months ago HTTP client library inspired by python-requests
Handy-Httpd 32 about 2 months ago A simple, lightweight, and well-documented HTTP server that lets you bootstrap ideas and have something up and running in minutes
serverino 52 2 months ago Small and ready-to-go http server, in D
Hunt Framework 299 8 months ago 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 531 27 days ago Adam D. Ruppe's web framework
cmsed 18 almost 10 years ago A component library for Vibe that functions as a CMS
grpc 44 over 2 years ago Grpc for D programming language, hunt-http library based
kissrpc 40 over 6 years ago Fast and light, flatbuffers based rpc framework
Hprose 26 about 8 years ago 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 0 over 5 years ago A Apache V2 gossip protocol implementation for D programming language
hunt-cache 6 almost 2 years ago D language universal cache library, using radix, redis and memcached
DSSG 20 over 1 year ago A static site generator with a different approach

Contents / Data serialization / Binary Serilization

flatbuffers 11 over 7 years ago D Programming Language implementation of the google flatbuffers library
cerealed 92 over 1 year ago Serialisation library for D
dproto 37 over 4 years ago Google Protocol Buffer support in D

Contents / Data serialization / JSON

vibe.data.json JSON functions in Vibe.d. Currently the best implementation I used
fast.json 112 over 1 year ago 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 24 over 5 years ago Convert between D types and std.json
std.data.json 25 6 months ago Phobos candidate for JSON serialization (based on Vibed)
asdf 20 3 months ago Cache oriented string based JSON representation for fast read & writes and serialisation

Contents / Data serialization / XML

orange 72 over 4 years ago General purpose serializer (currently only supports XML)
std.experimental.xml 20 over 7 years ago Phobos candidate for a XML serialization
dom.d 531 27 days ago arsd - an xml/html DOM based on what Javascript provides in browsers

Contents / Database clients

hunt-entity 57 over 2 years ago 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 48 about 1 year ago Hunt database abstraction layer for D programing language, support PostgreSQL / MySQL / SQLite
vibe.d 1,150 about 2 months ago 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 80 11 months ago A MySQL client implemented in native D
ddb 39 over 2 years ago Database access for D2. Currently only supports PostgreSQL
arsd 531 27 days ago 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 78 18 days ago DDBC is a DB Connector for D language (similar to JDBC). HibernateD (see below) uses ddbc for database abstraction
hibernated 82 14 days ago HibernateD is an ORM for D (similar to )
dvorm 17 over 8 years ago 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 6 over 1 year ago INteract with a PocketBase database

Contents / Command Line

hunt-console 4 about 3 years ago Hunt console creation easier to create powerful command-line applications
tilix 5,422 about 1 month ago A tiling terminal emulator for Linux using GTK+ 3
scriptlike 93 over 3 years ago Utility library to aid writing script-like programs in D
todod 15 over 7 years ago 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 531 27 days ago Part of Adam Ruppe's library supporting cursor and color manipulation on the console
dexpect 13 almost 4 years ago A D implementation of the expect framework. Handy for bash emulation
Argon 17 about 7 years ago A processor for command-line arguments, an alternative to Getopt, written in D
argsd 16 about 3 years ago A command line and config file parser for DLang
darg 38 almost 3 years ago Robust command line argument parsing for D
commandr 41 3 months ago A modern, powerful commmand line argument parser
luneta 62 over 1 year ago A command-line fuzzy finder
argparse Flexible parser of command line arguments
dlog 1 7 months ago extensible logging framework with message transformation support and custom loggers and contexts
gogga 2 7 months ago simple easy-to-use colorful logger for command-line applications

Contents / GUI Libs

DLangUI 816 11 days ago 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 322 5 months ago 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 142 about 1 year ago 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 118 about 3 years ago GUI toolkit for the D programming language based on Tcl/Tk
dqml 42 about 2 years ago Qt Qml bindings for the D programming language
Sciter-Dport 34 over 7 years ago D bindings for the - crossplatform HTML/CSS/script desktop UI toolkit
LibUI 34 over 3 years ago Dynamic Binding for

Contents / OS

PowerNex 491 over 5 years ago A kernel written in D
SerpentOS Snek factory ( )
Trinix 108 about 3 years ago Hybrid operating system for x64 PC written in D
XOmB 342 over 11 years ago An exokernel operating system written in D

Contents / Game Bindings

bindbc-loader 25 9 months ago BindBC libraries - compatible, bindings using :

Contents / Game Bindings / bindbc-loader

bindbc-opengl 37 about 1 month ago OpenGL -
bindbc-glfw 38 10 months ago GLFW 3 -
bindbc-sdl 92 10 days ago SDL 2 -
bindbc-sdlgfx 1 about 5 years ago SDL2_gfx -
bindbc-sfml 12 over 1 year ago SFML 2 -
bindbc-imgui 18 3 months ago Imgui - immediate UI -
bindbc-nuklear 42 about 1 year ago Nuklear - immediate UI -
bindbc-raylib3 15 11 months ago raylib3 -
bindbc-bgfx 21 almost 2 years ago bgfx -
bindbc-wgpu 25 2 months ago WebGPU -
bindbc-zstandard 2 over 5 years ago Zstandard - compression -
bindbc-nng 1 about 4 years ago nanomsg-next-gen -
bindbc-openal 8 10 months ago OpenAL - audio engine -
bindbc-soloud 7 7 months ago SoLoud - audio engine -
bindbc-kiwi 4 about 5 years ago KiWi - widget library -
bindbc-nanovg 3 over 4 years ago NanoVG - vector drawing engine -
bindbc-blend2d 4 over 1 year ago Blend2D - 2D Vector Graphics Powered by a JIT Compiler -
bindbc-lua 17 9 months ago Lua -
bindbc-jsl 2 about 4 years ago JoyShockLibrary -
bindbc-newton 8 8 months ago Newton Dynamics - physics engine -
bindbc-freeimage 7 over 1 year ago FreeImage -
bindbc-assimp Assimp5 -
bindbc-freetype 16 about 1 month ago Freetype -
bindbc-harfbuzz 1 9 days ago Harfbuzz - text shaping engine -

Contents / Game Bindings

DerelictOrg A GitHub organization hosting all Derelict bindings including:

Contents / Game Engine Bindings

Godot-D 206 about 1 year ago D language bindings for the Godot Engine's GDNative API

Contents / Game Frameworks

DGame 85 almost 5 years ago A 2D framework for the D programming Language. see
gfm 3 4 months ago D gamedev toolkit
Dagon 334 24 days ago 3D game engine for D. see
Dash 421 almost 4 years ago A free and open 3D game engine written in D. see
DSFML 95 over 5 years ago A static binding of SFML in a way that makes sense for D. see
DAllegro5 42 21 days ago D binding/wrapper to Allegro 5, a modern game programming library
Voxelman 128 over 2 years ago Plugin-based client-server voxel game engine written in D language
PolyplexEngine 38 over 4 years ago libpp is an XNA like framework written in D
rengfx 81 about 1 month ago lightweight, expressive, extensible 2D/3D game engine

Contents / Games

Spacecraft 17 over 10 years ago A 3d multiplayer deathmatch space game written in D 2.0
Dtanks 11 almost 9 years ago Robot Tank Battle Game
Electronvolt (formerly Atrium) 112 7 months ago FPS game with physics based puzzles using OpenGL
Backgammony 42 5 months ago A Backgammon GUI for Linux built with Gtk

Contents / Internationalization

bindbc-icu 2 over 2 years ago bindbc bindings for the unicode ICU library

Contents / Video applications

DerelictGL3 79 over 5 years ago A dynamic binding to OpenGL for the D Programming Language

Contents / Image Processing

ArmageddonEngine 172 about 1 month ago 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 217 3 months ago image processing (8 and 16 bits per channel, floating point operations, filtering, FFT, HDRI, graphics formats support including JPEG and PNG)
color.d 531 27 days ago + , , - basic color struct, HSL functions and reading and writing image files
opencvd 23 about 3 years ago Unofficial OpenCV binding for D

Contents / End-user applications

Cryptic-Resolver Manage cryptic commands' names, acronyms and your own knowledge base (a command line utility)
Inochi Creator 878 about 1 month ago Tool to create and edit Inochi2D puppets
Literate 671 over 2 years ago A literate programming tool for any language
onedrive 10,165 7 days ago #1 Free OneDrive Client for Linux
tshare 129 11 months ago fast file sharing from cli, using transfer.sh

Contents / Machine Learning

vectorflow 1,292 7 months ago Nexflix's opensource deep learning framework
bindbc-onnxruntime 11 over 1 year ago bindbc bindings to Microsoft's cross-platform, high performance ML inferencing and training accelerator
grain2 7 over 4 years ago Autograd and GPGPU library for dynamic neural networks in D
tfd 32 over 3 years ago Tensorflow wrapper for D

Contents / Parallel computing

DCompute 138 almost 2 years ago -
DerelictCUDA 17 over 5 years ago Dynamic bindings to the CUDA library for the D Programming Language
DerelictCL 7 about 5 years ago Dynamic bindings to the OpenCL library for the D Programming Language

Contents / Scientific

scid 91 over 4 years ago Scientific library for the D programming language
dstats 26 almost 2 years ago A statistics library for D
mir 210 over 2 years ago Sandbox for some mir packages: sparse tensors, Hoffman and others
mir-algorithm 210 over 2 years ago N-dimensional arrays (matrixes, tensors), algorithms, general purpose library
mir-random 32 almost 3 years ago Advanced Random Number Generators
decimals Decimal library for D

Contents / Scientific / Language Processing

bindbc-mecab 1 over 4 years ago bindbc MeCab binding (Part-of-Speech and Morphological Analyzer for Japanese)

Contents / Text Processing

hunt-markdown 12 over 2 years ago A markdown parsing and rendering library for D programming language. Support commonMark
eBay's TSV utilities 1,433 about 2 years ago Filtering, statistics, sampling, joins and other operations on TSV files. Very fast, especially good for large datasets

Contents / Logging

std.experimenatal.logger Phobos's upcoming standard logging facility
dlogg 14 about 7 years ago Logging for concurrent applications and daemons with lazy and delayed logging, support

Contents / Configuration

sdlang 120 over 1 year ago An SDL (Simple Declarative Language) library for D
D:YAML 119 4 months ago YAML parser and emitter for the D programming language
inifile-D 21 about 2 years ago A compile time ini file parser and writter generator for D

Contents / Blog Engine

mood 43 about 4 years ago simple vibe.d based blog engine

Contents / Dependency Injection

Poodinis 71 5 months ago A dependency injection framework for D with support for autowiring

Backlinks from these awesome lists:

More related projects: