D
Contents_Index
- OFFICIAL WEBSITES7
- GETTING HELP4
- PEOPLE3
- EVENTS2
- ORGANIZATIONS11
- BOOKS5
- TUTORIALS10
- BLOGS7
- ARTICLES5
- PACKAGE MANAGEMENT2
- COMPILERS3
- ALTERNATIVE / WIP COMPILERS2
- DEV TOOLS2
- BUILD TOOLS11
- IDES & EDITORS8
- LEXERS, PARSERS & GENERATORS7
- PREPROCESORS1
- VERSION MANAGERS2
- GITHUB ACTIONS2
- TESTING FRAMEWORKS3
- JAVASCRIPT1
- OPERATING SYSTEMS4
- BARE METAL / KERNEL DEVELOPMENT4
- GENERAL CONTAINERS4
- CORE UTILITIES3
- WEB FRAMEWORKS11
- DATA SERIALIZATION11
- DATABASE CLIENTS9
- CLI LIBRARIES10
- CLI APPLICATIONS5
- GUI LIBRARIES9
- GUI APPLICATIONS3
- GAME BINDINGS7
- GAME LIBRARIES8
- GAMES8
- INTERNATIONALIZATION1
- IMAGE PROCESSING4
- MACHINE LEARNING4
- PARALLEL COMPUTING3
- SCIENTIFIC4
- LANGUAGE PROCESSING1
- TEXT PROCESSING2
- LOGGING3
- CONFIGURATION3
- BLOG ENGINE1
- DEPENDENCY INJECTION1
- CRYPTOGRAPHY3
- UNMAINTAINED18
Official Websites
7_ENTRIESOfficial website URLs for D.
- dlang.org
Official website for D.
- wiki.dlang.org
Official wiki for D.
- blog.dlang.org
Official blog for D.
- forum.dlang.org
Official forum for D. Many interesting discussions occurring on a daily basis.
- code.dlang.org
Official library registry for D.
- Issue tracker
Official issue tracker for D. Older reports can be found in the archived tracker.
- Language specification
The D programming language specification.
Getting Help
4_ENTRIESFor when you're stuck.
- Official D Forum Learn Group
Highest-traffic site for getting D questions answered.
- D on Stack Overflow
Less traffic than the 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 discussions and questions.
People
3_ENTRIESThe people that made D the language it is.
- YOU - Please add your information if you've done something interesting in D. It is you, the awesome people that make D awesome.
- 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 The D Programming Language and Modern C++ Design. 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
2_ENTRIESOrganizations
11_ENTRIESOrganizations that contribute to D projects.
- 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 Dash, 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 bitbucket. They are also porting their main product--Video Enchanser 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 annual D language conference. Has open-sourced large parts of their codebase as part of the tsunami 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 Symmetry Autumn of Code. Have sponsored the development of excel-d, dpp, autowrap, [mir-algorithm](https://github.com/libmir/mir-al…
- HuntLabs
A technology group using DLang. Have pure D language implementation of quickly develop server-side applications and build distributed system services.
Books
5_ENTRIESD related books. You can find another list of books on the Books D wiki page.
- TDPL
The D Programming Language 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 review of the book.
- 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
10_ENTRIESD related 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 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. His channel 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.
Blogs
7_ENTRIESD related 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
5_ENTRIESD related 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.
- 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
2_ENTRIESLibraries for package and dependency management.
- code.dlang.org
Official D library repository. Backed by dub.
- dub
Official package and build management system for D.
Compilers
3_ENTRIESOfficial compilers for the D language.
- 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.
Alternative / WIP Compilers
2_ENTRIESThese compilers may differ from or be incompatible with the official set of tools.
Dev Tools
2_ENTRIESTools for more productive D development.
Build Tools
11_ENTRIESManage projects and compile software from source code.
- 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.
- 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
8_ENTRIESIntegrated Development Environment.
- 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
- ide-d
Pulsar (fork of 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 editors support.
- 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 & Generators
7_ENTRIES- 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
1_ENTRIES- warp
A fast preprocessor for C and C++ used in Facebook infrastructure. Written by Walter Bright.
Version Managers
2_ENTRIESGitHub Actions
2_ENTRIES- setup-dlang
Install D compilers & DUB inside GitHub Actions
- dub-upgrade
Run
dub upgradetrying to repeat on network failure and using package cache on GitHub Actions
Testing Frameworks
3_ENTRIES- unit-threaded
Multi-threaded unit test framework
- silly
Better test runner for the D programming language. No nonsense.
- fluent-asserts
Fluent assertion framework with expressive syntax and detailed error messages.
Javascript
1_ENTRIES- higgs
Higgs JavaScript Virtual Machine, implemented in D.
Operating Systems
4_ENTRIESOperating Systems written in D.
Bare Metal / Kernel Development
4_ENTRIES- 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. Main page, github.
- 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.
General Containers
4_ENTRIESData structures and container libraries.
- 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
Core Utilities
3_ENTRIESGeneral-purpose utility libraries.
Web Frameworks
11_ENTRIESNetworking libraries.
Full stack web frameworks.
RPC libraries.
Static Site Generator.
- 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
- libasync
Cross-platform event loop library of asynchronous objects
- libhttp2
HTTP/2 library in D, translated from nghttp2
- 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.
- Apache Thrift
A lightweight, language-independent, featureful RPC framework. Thrift provides clean abstractions for data transport, data serialization, code generation, and application level processing. Apache Thrift Page
- Hprose
A very newbility RPC Library for D, and it support 25+ languages now.
- DSSG
A static site generator with a different approach.
Data Serialization
11_ENTRIESJSON, XML, protobuf and other data serialization libraries.
JSON libraries.
XML libraries.
- arsd dom.d - an xml/html DOM based on what Javascript provides in browsers
- cerealed
Serialisation library for D
- dproto
Google Protocol Buffer support in D.
- 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.
- orange
General purpose serializer (currently only supports XML)
- std.experimental.xml
Phobos candidate for a XML serialization
- newxml
Successor of std.experimental.xml. DOM compatible, and also has a SAX parser.
Database Clients
9_ENTRIESClients and bindings to C clients for relational and nosql databases.
- 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.
- 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.
- hibernated
HibernateD is an ORM for D (similar to Hibernate).
- mysql-native
A MySQL client implemented in native D.
- ddb
Database access for D2. Currently only supports PostgreSQL.
- ddbc
DDBC is a DB Connector for D language (similar to JDBC). HibernateD (see below) uses ddbc for database abstraction.
- 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
CLI Libraries
10_ENTRIES- terminal.d
Part of Adam Ruppe's arsd library supporting cursor and color manipulation on the console.
- commandr
A modern, powerful command line argument parser.
- argsd
A command line and config file parser for DLang
- luneta
A command-line fuzzy finder.
- argparse
Flexible parser of command line arguments.
- gogga
simple easy-to-use colorful logger for command-line applications
- scriptlike
Utility library to aid writing script-like programs in D.
- d-colorize
A port of the ruby library colorize. It add some methods to set color, background color and text effect on console easier using ANSI escape sequences.
- 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.
CLI Applications
5_ENTRIESGUI Libraries
9_ENTRIESLibraries for working with graphical user interface applications.
Note: You can also find a list of GUI libs on wiki.dlang.org, but not all of the libraries are actively maintained now.
- giD
GObject Introspection D Package Repository.
- Fluid
A declarative cross-platform user interface library for D.
- minigui
A smallish GUI widget library, aiming to be on par with at least HTML4 forms and a few other expected gui components.
- microui-d
A tiny immediate-mode UI library.
- 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.
- 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 Sciter - crossplatform HTML/CSS/script desktop UI toolkit.
GUI Applications
3_ENTRIES- tilix
A tiling terminal emulator for Linux using GTK+ 3.
- Inochi Creator
Inochi2D Rigging Application.
- Inochi Session
Application that allows streaming with Inochi2D puppets.
Game Bindings
7_ENTRIESBindings to game development related libraries in C, C++, and other languages.
- raylib-d
D bindings for raylib.
- sokol-d
D bindings for the sokol headers.
- DAllegro5
D binding/wrapper to Allegro 5, a modern game programming library.
- DSFML
A static binding of SFML in a way that makes sense for D.
- Godot-D
D language bindings for the Godot Engine's GDNative API.
- BindBC
Bindings compatible with
-betterCand@nogc, using bindbc-loader.OpenGL - Graphics APIGLFW 3 - Window/Input librarySDL 2 - Multimedia librarySDL2_gfx - Drawing primitives for SDL2SFML 2 - Multimedia library[Imgui](https://github.com/Inochi2D/i…
Game Libraries
8_ENTRIESD libraries for game development.
Libraries for 2D-related projects.
Libraries for 2D/3D-related projects.
Libraries for 3D-related projects.
- InMath
Games math library for D.
- gfm
D gamedev toolkit.
- Parin
A delightfully simple 2D game engine.
- PixelPerfectEngine
2D graphics engine written in D.
- HipremeEngine
Cross Platform D-Lang Game Engine with scripting support.
- rengfx
lightweight, expressive, extensible 2D/3D game engine.
- Dagon
3D game engine for D. See: https://gecko0307.github.io/dagon/
- Voxelman
Plugin-based client-server voxel game engine written in D language.
Games
8_ENTRIESGames made with D.
- 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.
- Worms Within
A bite-sized escape room game.
- Clean & Haunted
Clean a spooky haunted house.
- Runani
An endless runner game where you help cute animals.
- A Short Metamorphosis
A cute visual novel about looking at an egg.
Internationalization
1_ENTRIES- bindbc-icu
bindbc bindings for the unicode ICU library.
Image Processing
4_ENTRIES- ArmageddonEngine
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.
- dlib.image
image processing (8 and 16 bits per channel, floating point operations, filtering, FFT, HDRI, graphics formats support including JPEG and PNG)
- opencvd
Unofficial OpenCV binding for D
Machine Learning
4_ENTRIES- 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
3_ENTRIES- 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
4_ENTRIESScientific programming.
- scid
Scientific library for the D programming language
- dstats
A statistics library for D.
- mir-algorithm
N-dimensional arrays (matrixes, tensors), algorithms, general purpose library.
- mir-random
Advanced Random Number Generators.
Language Processing
1_ENTRIES- bindbc-mecab
bindbc MeCab binding (Part-of-Speech and Morphological Analyzer for Japanese)
Text Processing
2_ENTRIES- 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
3_ENTRIESPrint with care.
- dlog
extensible logging framework with message transformation support and custom loggers and contexts
- std.experimenatal.logger
Phobos's upcoming standard logging facility.
- dlogg
Logging for concurrent applications and daemons with lazy and delayed logging, logrotate support.
Configuration
3_ENTRIESParsing configuration files.
Blog Engine
1_ENTRIESHosting blogs yourself.
- mood
simple vibe.d based blog engine
Dependency Injection
1_ENTRIESApply inversion of control.
- Poodinis
A dependency injection framework for D with support for autowiring.
Cryptography
3_ENTRIESUnmaintained
18_ENTRIESOld or archived projects saved for reference.
- dunit
Advanced unit testing & mocking toolkit
- 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.
- collie
An asynchronous event-driven network framework written in dlang, like netty framework in D.
- 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 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.
- grpc
Grpc for D programming language, hunt-http library based.
- kissrpc
Fast and light, flatbuffers based rpc framework.
- hunt-gossip
A Apache V2 gossip protocol implementation for D programming language.
- hunt-cache
D language universal cache library, using radix, redis and memcached.
- flatbuffers
D Programming Language implementation of the google flatbuffers library.
- 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.
- hunt-console
Hunt console creation easier to create powerful command-line applications.
- 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.