update lists

This commit is contained in:
2025-07-18 22:22:32 +02:00
parent 55bed3b4a1
commit 5916c5c074
3078 changed files with 331679 additions and 357255 deletions

View File

@@ -1,82 +1,75 @@
# Awesome D [![Awesome](https://cdn.jsdelivr.net/gh/sindresorhus/awesome@d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
---
A curated list of awesome D frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python).
I created this list so that when I needed something in the future, it would be easy to find. Most of the documents and links are collected from the [D forum](https://forum.dlang.org), the [D wiki](https://wiki.dlang.org), and the [D package repository](https://code.dlang.org). Exploring GitHub also helps as many of the libs are hosted there.
If you know an interesting lib/app in D, please tell us through [GitHub issues](https://github.com/dlang-community/awesome-d/issues) or [edit this file](https://github.com/dlang-community/awesome-d/edit/master/README.md).
# Contents
A curated list of awesome D frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python).
- [Awesome D](#awesome-d)
- Basic Information
- [Official Website](#official-website)
- [Getting Help](#getting-help)
- [People](#people)
- [Events](#events)
- [Organizations](#organizations)
- Documents
- [Books](#books)
- [Tutorials](#tutorials)
- [Blogs](#blogs)
- [Articles](#articles)
- Language Related
- [Package Management](#package-management)
- [Compilers](#compilers)
- [WIP Compilers](#wip-compilers)
- [Dev Tools](#dev-tools)
- [Build Tools](#build-tools)
- [IDEs & Editors](#ides--editors)
- [Lexers, Parsers, Generators](#lexers-parsers-parser-generators)
- [Preprocessors](#preprocessors)
- Compiler for other languages
- [Javascript](#javascript)
- Common/Utilities
- [Basic](#basic)
- [Containers](#containers)
- Continuous Integration
- [GitHub Actions](#github-actions)
- [Testing Frameworks](#testing-frameworks)
- Networking/Web Related
- [Networking](#networking-library)
- [Web Frameworks](#web-frameworks)
- [Data&Serialization](#data-serialization)
- Database
- [Database clients](#database-clients)
- GUI
- [GUI Libs](#gui-libs)
- OS
- [Operating Systems](#os)
- Gaming
- [Bindings](#game-bindings)
- [Game Engine Bindings](#game-engine-bindings)
- [Frameworks](#game-frameworks)
- [Games](#games)
- Internationalization (i18n) / Globalization
- [Internationalization](#internationalization)
- Video
- [Applications](#video-applications)
- Image Processing
- [Applications](#image-processing)
- End-user applications (AppImages, Flatpaks, Snaps...)
- [Applications](#end-user-applications)
- Scientific
- [Scientific](#scientific)
- [Language Processing](#language-processing)
- Machine Learning
- [Machine Learning](#machine-learning)
- [Parallel computing](#parallel-computing)
- Others
- [Text Processing](#text-processing)
- [Command Line](#command-line)
- [Logging](#logging)
- [Configuration](#configuration)
- [BlogEngine](#blog-engine)
- [Dependency Injection](#dependency-injection)
- [Other Awesome Lists](#other-awesome-lists)
Most documents and links are collected from the [D forum](https://forum.dlang.org), the [D wiki](https://wiki.dlang.org), and the [D package repository](https://code.dlang.org). Exploring GitHub is also helpful, as many libraries are hosted there. If you know of an interesting D project, please let us know via [GitHub issues](https://github.com/dlang-community/awesome-d/issues) or by [editing this file](https://github.com/dlang-community/awesome-d/edit/master/README.md).
# Contents
* Basic Information
* [Official Website](#official-website)
* [Getting Help](#getting-help)
* [People](#people)
* [Events](#events)
* [Organizations](#organizations)
* Documents
* [Books](#books)
* [Tutorials](#tutorials)
* [Blogs](#blogs)
* [Articles](#articles)
* Language Related
* [Package Management](#package-management)
* [Compilers](#compilers)
* [WIP Compilers](#wip-compilers)
* [Dev Tools](#dev-tools)
* [Build Tools](#build-tools)
* [IDEs & Editors](#ides--editors)
* [Lexers, Parsers, Generators](#lexers-parsers-parser-generators)
* [Preprocessors](#preprocessors)
* [Version Managers](#version-managers)
* Continuous Integration
* [GitHub Actions](#github-actions)
* [Testing Frameworks](#testing-frameworks)
* Compiler for Other Languages
* [Javascript](#javascript)
* OS
* [Operating Systems](#operating-systems)
* [Bare Metal/Kernel Development](#bare-metalkernel-development)
* Common
* [General Containers](#general-containers)
* [Core Utilities](#core-utilities)
* Networking/Web
* [Web Frameworks](#web-frameworks)
* [Data Serialization](#data-serialization)
* Database
* [Database Clients](#database-clients)
* CLI
* [CLI Libraries](#cli-libraries)
* [CLI Applications](#cli-applications)
* GUI
* [GUI Libraries](#gui-libraries)
* [GUI Applications](#gui-applications)
* Game Development
* [Game Bindings](#game-bindings)
* [Game Libraries](#game-libraries)
* [Games](#games)
* Internationalization (i18n) / Globalization
* [Internationalization](#internationalization)
* Image Processing
* [Image Processing](#image-processing)
* Machine Learning
* [Machine Learning](#machine-learning)
* [Parallel Computing](#parallel-computing)
* Scientific
* [Scientific](#scientific)
* [Language Processing](#language-processing)
* Others
* [Text Processing](#text-processing)
* [Logging](#logging)
* [Configuration](#configuration)
* [BlogEngine](#blog-engine)
* [Dependency Injection](#dependency-injection)
* [Unmaintained](#unmaintained)
## Official Website
@@ -130,7 +123,9 @@
* [HuntLabs](https://www.huntlabs.net) - A technology group using DLang. Have pure D language implementation of quickly develop server-side applications and build distributed system services.
## Books
*D related books.* You can find another list of books on the [Books](https://wiki.dlang.org/Books) D wiki page.
* [TDPL](https://www.amazon.com/The-Programming-Language-Andrei-Alexandrescu/dp/0321635361/) - *The D Programming Language* by Andrei Alexandrescu.
* [Programming in D](https://ddili.org/ders/d.en/index.html) - 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](https://www.packtpub.com/product/d-cookbook/9781783287215) - 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](https://www.cppstories.com/2014/08/review-of-d-cookbook/).
@@ -138,7 +133,9 @@
* [D Web Development](https://www.packtpub.com/product/d-web-development/9781785288890) - 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
*D related tutorials.*
* [The Dlang Tour](https://tour.dlang.org/) - An interactive tutorial for D, inspired by Golang Tour.
* [Programming in Dlang](https://www.youtube.com/watch?v=HS7X9ERdjM4&list=PLvv0ScY6vfd9Fso-3cB4CGnSlW0E4btJV&ab_channel=MikeShah) - An introductory video series about programming in D.
* [Pragmatic D tutorial](https://qznc.github.io/d-tut/index.html) - This is a pragmatic introduction to the D Programming Language. by Andreas Zwinkau.
@@ -151,13 +148,8 @@
* [Let's learn D programming Game Dev!](https://www.youtube.com/watch?v=j-Zm1zgSxMQ&list=PLgM-lc_kSqFQPF0UXgmFZpZalqcrSofe-&ab_channel=KiRill) - A video series on learning game development with D from Ki Rill. [His channel](https://www.youtube.com/@rillki-dev/) also posts other videos related to D programming.
* [DLang YouTube Tutorials from Mike Shah](https://www.youtube.com/playlist?list=PLvv0ScY6vfd9Fso-3cB4CGnSlW0E4btJV) - Series of tutorials covering basic to advanced features of the D programming language and standard library.
### Bare metal / kernel development
* [D Bare bones](https://wiki.osdev.org/D_Bare_Bones) - kernel hello world in D (using GDC compiler)
* [D barebone with ldc2](https://wiki.osdev.org/D_barebone_with_ldc2) - another kernel hello world in D (using LDC compiler)
* [XOmB bare bones](https://web.archive.org/web/20161214232759/http://wiki.xomb.org/index.php?title=XOmB_Bare_Bones) - an exokernel operating system written in D. [Main page](https://web.archive.org/web/20161201061242/http://wiki.xomb.org/index.php?title=Main_Page), [github](https://github.com/xomboverlord/xomb/tree/unborn).
* [Bare Metal ARM Cortex-M GDC Cross Compiler](https://wiki.dlang.org/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
*D related blogs.*
* [blog.dlang.org](https://dlang.org/blog/) - Official blog.
@@ -169,6 +161,7 @@
* [Tasty D](https://tastyminerals.github.io/tasty-blog/) - A blog about learning the D programming language and various D language trivia.
## Articles
*D related Articles.*
* [Origins of the D programming language](https://dl.acm.org/doi/pdf/10.1145/3386323) - By Walter Bright, Andrei Alexandrescu, Michael Parker. The history and development of D language.
@@ -184,7 +177,6 @@
* [code.dlang.org](https://code.dlang.org/) - Official D library repository. Backed by dub.
* [dub](https://github.com/dlang/dub) - Official package and build management system for D.
## Compilers
@@ -198,7 +190,6 @@
* [sdc](https://github.com/snazzy-d/SDC) - The Snazzy D Compiler. Written in D. Grows Smarter every day.
## Dev Tools
*Tools for more productive D development.*
@@ -206,7 +197,6 @@
* [D-Scanner](https://github.com/dlang-community/D-Scanner) - Swiss-army knife for D source code (linting, static analysis, D code parsing, etc.)
* [dfmt](https://github.com/dlang-community/dfmt) - formatter for D source code
## Build Tools
*Manage projects and compile software from source code.*
@@ -223,9 +213,6 @@
* [XMake](https://xmake.io) - XMake is a crossplatform build system, that incorporated the D language and also has support for DUB repositories.
* [wox](https://github.com/redthing1/wox) - A highly flexible recipe build system inspired by Make
<a name="ide"></a>
## IDEs & Editors
*Integrated Development Environment.*
@@ -236,9 +223,6 @@
* [Dutyl](https://github.com/idanarye/vim-dutyl) - Vim plugin that integrates various D development tools
* [code-d](https://marketplace.visualstudio.com/items?itemName=webfreak.code-d) <sup>\[[open-vsx](https://open-vsx.org/extension/webfreak/code-d)\]</sup> - Visual Studio Code extension using serve-d
* [ide-d](https://atom.io/packages/ide-d) - Atom extension for D using serve-d
<br/>
* [DCD](https://github.com/dlang-community/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](https://github.com/dlang-community/DCD/wiki/IDEs-and-Editors-with-DCD-support).
* [serve-d](https://github.com/Pure-D/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)
@@ -256,80 +240,92 @@
* [warp](https://github.com/facebookarchive/warp) - A fast preprocessor for C and C++ used in Facebook infrastructure. Written by Walter Bright.
## Javascript
* [higgs](https://github.com/higgsjs/Higgs) - Higgs JavaScript Virtual Machine, implemented in D.
## Version Managers
## Basic
* [dvm](https://github.com/jacob-carlborg/dvm) - A small tool to install and manage DMD (self-hosting) compiler.
* [ldcup](https://github.com/kassane/ldcup) - A small tool to install and manage LDC2 (LLVM backend) compiler.
* [hunt](https://github.com/huntlabs/hunt) - A refined core library for D programming language. The module has concurrency / collection / event / io / logging / text / serialize and more.
* [hunt-time](https://github.com/huntlabs/hunt-time) - A time library and similar to Joda-time and Java.time api.
* [hunt-validation](https://github.com/huntlabs/hunt-validation) - A data validation library for DLang based on hunt library.
## Containers
* [EMSI containers](https://github.com/dlang-community/containers) - Containers that do not use the GC
- [memutils](https://github.com/etcimon/memutils) - Overhead allocators, allocator-aware containers and lifetime management for D objects
- [dlib.container](https://github.com/gecko0307/dlib) - generic data structures (GC-free dynamic and associative arrays and more)
- [std.rcstring](https://github.com/burner/std.rcstring) - A reference counted string implementation for D's build in string construct
## GitHub Actions
- [setup-dlang](https://github.com/dlang-community/setup-dlang) - Install D compilers & DUB inside GitHub Actions
- [dub-upgrade](https://github.com/WebFreak001/dub-upgrade) - Run `dub upgrade` trying to repeat on network failure and using package cache on GitHub Actions
<a name="testing"></a>
* [setup-dlang](https://github.com/dlang-community/setup-dlang) - Install D compilers & DUB inside GitHub Actions
* [dub-upgrade](https://github.com/WebFreak001/dub-upgrade) - Run `dub upgrade` trying to repeat on network failure and using package cache on GitHub Actions
## Testing Frameworks
- [silly](https://gitlab.com/AntonMeep/silly) - Better test runner for the D programming language. No nonsense.
- [dunit](https://github.com/nomad-software/dunit) - Advanced unit testing & mocking toolkit
- [unit-threaded](https://github.com/atilaneves/unit-threaded) - Multi-threaded unit test framework
* [unit-threaded](https://github.com/atilaneves/unit-threaded) - Multi-threaded unit test framework
* [silly](https://gitlab.com/AntonMeep/silly) - Better test runner for the D programming language. No nonsense.
## Javascript
* [higgs](https://github.com/higgsjs/Higgs) - Higgs JavaScript Virtual Machine, implemented in D.
## Operating Systems
*Operating Systems written in D.*
* [PowerNex](https://github.com/PowerNex/PowerNex) - A kernel written in D
* [SerpentOS](https://serpentos.com/) - Snek factory ([source code](https://gitlab.com/serpent-os))
* [Trinix](https://github.com/Rikarin/Trinix) - Hybrid operating system for x64 PC written in D
* [XOmB](https://github.com/xomboverlord/xomb) - An exokernel operating system written in D
## Bare Metal/Kernel Development
* [D Bare bones](https://wiki.osdev.org/D_Bare_Bones) - kernel hello world in D (using GDC compiler)
* [D barebone with ldc2](https://wiki.osdev.org/D_barebone_with_ldc2) - another kernel hello world in D (using LDC compiler)
* [XOmB bare bones](https://web.archive.org/web/20161214232759/http://wiki.xomb.org/index.php?title=XOmB_Bare_Bones) - an exokernel operating system written in D. [Main page](https://web.archive.org/web/20161201061242/http://wiki.xomb.org/index.php?title=Main_Page), [github](https://github.com/xomboverlord/xomb/tree/unborn).
* [Bare Metal ARM Cortex-M GDC Cross Compiler](https://wiki.dlang.org/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
*Data structures and container libraries.*
* [EMSI containers](https://github.com/dlang-community/containers) - Containers that do not use the GC
* [memutils](https://github.com/etcimon/memutils) - Overhead allocators, allocator-aware containers and lifetime management for D objects
* [dlib.container](https://github.com/gecko0307/dlib) - generic data structures (GC-free dynamic and associative arrays and more)
* [std.rcstring](https://github.com/burner/std.rcstring) - A reference counted string implementation for D's build in string construct
## Core Utilities
*General-purpose utility libraries.*
* [NuMem](https://github.com/Inochi2D/numem) - No-GC memory managment utilities for DLang.
* [NuLib](https://github.com/Inochi2D/nulib) - D "standard" library built ontop of numem.
* [Joka](https://github.com/Kapendev/joka) - A nogc utility library.
## Web Frameworks
*Networking library*
* [hunt-net](https://github.com/huntlabs/hunt-net) - High-performance network library for D programming language, event-driven asynchonous implemention(IOCP / kqueue / epoll).
* [hunt-http](https://github.com/huntlabs/hunt-http) - HTTP/1 and HTTP/2 protocol library for D.
* [hunt-stomp](https://github.com/huntlabs/hunt-stomp) - STOMP for websocket protocol library implement in D.
* [libasync](https://github.com/etcimon/libasync) - Cross-platform event loop library of asynchronous objects
* [libhttp2](https://github.com/etcimon/libhttp2) - HTTP/2 library in D, translated from nghttp2
* [collie](https://github.com/huntlabs/collie) - An asynchronous event-driven network framework written in dlang, like netty framework in D.
*Networking libraries.*
* [dlang-requests](https://github.com/ikod/dlang-requests) - HTTP client library inspired by python-requests
* [Handy-Httpd](https://github.com/andrewlalis/handy-httpd) - A simple, lightweight, and well-documented HTTP server that lets you bootstrap ideas and have something up and running in minutes.
* [serverino](https://github.com/trikko/serverino) - Small and ready-to-go http server, in D
* [libasync](https://github.com/etcimon/libasync) - Cross-platform event loop library of asynchronous objects
* [libhttp2](https://github.com/etcimon/libhttp2) - HTTP/2 library in D, translated from nghttp2
*Full stack web frameworks.*
* [Hunt Framework](https://github.com/huntlabs/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](https://vibed.org/) - Asynchronous I/O Web Framework that doesnt get in your way, written in D.
* [arsd](https://github.com/adamdruppe/arsd) - Adam D. Ruppe's web framework.
* [cmsed](https://github.com/rikkimax/Cmsed) - A component library for Vibe that functions as a CMS.
*RPC library*
* [grpc](https://github.com/huntlabs/grpc-dlang) - Grpc for D programming language, hunt-http library based.
* [kissrpc](https://github.com/huntlabs/kissrpc) - Fast and light, flatbuffers based rpc framework.
*RPC libraries.*
* [Apache Thrift](https://code.dlang.org/packages/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](https://thrift.apache.org/)
* [Hprose](https://github.com/hprose/hprose-d) - A very newbility RPC Library for D, and it support 25+ languages now.
* [Apache Thrift](https://thrift.apache.org/) - A lightweight, language-independent, featureful RPC framework. Thrift provides clean abstractions for data transport, data serialization, code generation, and application level processing. [Dub package](https://code.dlang.org/packages/apache-thrift)
*Gossip*
* [hunt-gossip](https://github.com/huntlabs/hunt-gossip) - A Apache V2 gossip protocol implementation for D programming language.
*Cache*
* [hunt-cache](https://github.com/huntlabs/hunt-cache) - D language universal cache library, using radix, redis and memcached.
*Static Site Generator*
*Static Site Generator.*
* [DSSG](https://github.com/kambrium/dssg) - A static site generator with a different approach.
## Data serialization
*Json, XML, protobuf and other data serialization libs.*
## Data Serialization
*JSON, XML, protobuf and other data serialization libraries.*
### Binary Serilization
* [flatbuffers](https://github.com/huntlabs/flatbuffers) - D Programming Language implementation of the google flatbuffers library.
* [cerealed](https://github.com/atilaneves/cerealed) - Serialisation library for D
* [dproto](https://github.com/msoucy/dproto) - Google Protocol Buffer support in D.
### JSON
*JSON libraries.*
* [vibe.data.json](https://vibed.org/api/vibe.data.json/) - JSON functions in Vibe.d. Currently the best implementation I used.
* [fast.json](https://github.com/etcimon/fast) - A library for D that aims to provide the fastest possible implementation of some every day routines.
@@ -338,147 +334,149 @@
* [std.data.json](https://github.com/dlang-community/std_data_json) - Phobos candidate for JSON serialization (based on Vibed)
* [asdf](https://github.com/libmir/asdf) - Cache oriented string based JSON representation for fast read & writes and serialisation.
### XML
*XML libraries.*
* [orange](https://github.com/jacob-carlborg/orange) - General purpose serializer (currently only supports XML)
* [std.experimental.xml](https://github.com/lodo1995/experimental.xml) - Phobos candidate for a XML serialization
* arsd [dom.d](https://github.com/adamdruppe/arsd/blob/master/dom.d) - an xml/html DOM based on what Javascript provides in browsers
* [newxml](https://github.com/ZILtoid1991/newxml) - Successor of std.experimental.xml. DOM compatible, and also has a SAX parser.
## Database Clients
## Database clients
*Clients and bindings to C bliencts for relational and nosql databases.*
* [hunt-entity](https://github.com/huntlabs/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](https://github.com/huntlabs/hunt-database) - Hunt database abstraction layer for D programing language, support PostgreSQL / MySQL / SQLite.
* [vibe.d](https://github.com/vibe-d/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](https://github.com/adamdruppe/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](https://github.com/buggins/hibernated) - HibernateD is an ORM for D (similar to [Hibernate](https://hibernate.org/)).
* [mysql-native](https://github.com/mysql-d/mysql-native) - A MySQL client implemented in native D.
* [ddb](https://github.com/pszturmaj/ddb) - Database access for D2. Currently only supports PostgreSQL.
* [arsd](https://github.com/adamdruppe/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](https://github.com/buggins/ddbc) - DDBC is a DB Connector for D language (similar to JDBC). HibernateD (see below) uses ddbc for database abstraction.
* [hibernated](https://github.com/buggins/hibernated) - HibernateD is an ORM for D (similar to [Hibernate](https://hibernate.org/)).
* [dvorm](https://github.com/rikkimax/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](http://adilbaig.github.io/Tiny-Redis/) - Redis driver for D. Fast, Simple, Stable. Has no dependencies.
* [libpb](https://github.com/Hax-io/libpb) - INteract with a PocketBase database
## Command Line
* [hunt-console](https://github.com/huntlabs/hunt-console) - Hunt console creation easier to create powerful command-line applications.
* [tilix](https://github.com/gnunn1/tilix) - A tiling terminal emulator for Linux using GTK+ 3.
* [scriptlike](https://github.com/Abscissa/scriptlike) - Utility library to aid writing script-like programs in D.
* [todod](https://github.com/BlackEdder/todod) - Todod is a command line based todo list manager. It also has support for shell interaction based on [linenoise](https://github.com/antirez/linenoise).
* [d-colorize](https://code.dlang.org/packages/colorize) - A port of the ruby library [colorize](https://github.com/fazibear/colorize). It add some methods to set color, background color and text effect on console easier using ANSI escape sequences.
## CLI Libraries
* [terminal.d](https://github.com/adamdruppe/arsd/blob/master/terminal.d) - Part of Adam Ruppe's [arsd](https://github.com/adamdruppe/arsd) library supporting cursor and color manipulation on the console.
* [dexpect](https://github.com/grogancolin/dexpect/) - A D implementation of the expect framework. Handy for bash emulation.
* [Argon](https://github.com/markuslaker/Argon) - A processor for command-line arguments, an alternative to Getopt, written in D.
* [argsd](https://github.com/burner/argsd) - A command line and config file parser for DLang
* [darg](https://github.com/jasonwhite/darg) - Robust command line argument parsing for D.
* [commandr](https://github.com/robik/commandr) - A modern, powerful commmand line argument parser.
* [argsd](https://github.com/burner/argsd) - A command line and config file parser for DLang
* [luneta](https://github.com/fbeline/luneta) - A command-line fuzzy finder.
* [argparse](https://code.dlang.org/packages/argparse) - Flexible parser of command line arguments.
* [dlog](https://github.com/deavmi/dlog) - extensible logging framework with message transformation support and custom loggers and contexts
* [gogga](https://github.com/deavmi/gogga) - simple easy-to-use colorful logger for command-line applications
* [scriptlike](https://github.com/Abscissa/scriptlike) - Utility library to aid writing script-like programs in D.
* [d-colorize](https://code.dlang.org/packages/colorize) - A port of the ruby library [colorize](https://github.com/fazibear/colorize). It add some methods to set color, background color and text effect on console easier using ANSI escape sequences.
* [dexpect](https://github.com/grogancolin/dexpect/) - A D implementation of the expect framework. Handy for bash emulation.
* [Argon](https://github.com/markuslaker/Argon) - A processor for command-line arguments, an alternative to Getopt, written in D.
## CLI Applications
* [Literate](https://github.com/zyedidia/Literate) - A literate programming tool for any language.
* [onedrive](https://github.com/abraunegg/onedrive) - #1 Free OneDrive Client for Linux.
* [tshare](https://github.com/trikko/tshare) - Fast file sharing from cli, using transfer.sh.
* [todod](https://github.com/BlackEdder/todod) - Todod is a command line based todo list manager. It also has support for shell interaction based on [linenoise](https://github.com/antirez/linenoise).
## GUI Libraries
## GUI Libs
*Libraries for working with graphical user interface applications.*
* [giD](https://github.com/Kymorphia/gid) - GObject Introspection D Package Repository.
* [Fluid](https://git.samerion.com/Samerion/Fluid) - A declarative cross-platform user interface library for D.
* [DLangUI](https://github.com/buggins/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 [DLangIDE](https://github.com/buggins/dlangide).
* [GtkD](https://github.com/gtkd-developers/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](https://github.com/d-widget-toolkit/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](https://github.com/nomad-software/tkd) - GUI toolkit for the D programming language based on Tcl/Tk.
* [dqml](https://github.com/filcuc/dqml) - Qt Qml bindings for the D programming language.
* [Sciter-Dport](https://github.com/sciter-sdk/Sciter-Dport) - D bindings for the [Sciter](https://sciter.com) - crossplatform HTML/CSS/script desktop UI toolkit.
* [LibUI](https://github.com/Extrawurst/DerelictLibui) - Dynamic Binding for [libui](https://github.com/andlabs/libui)
*Note*: You can also find a list of GUI libs on [wiki.dlang.org](https://wiki.dlang.org/Libraries_and_Frameworks#GUI_Libraries), but not all of the libraries are actively maintained now.
## OS
## GUI Applications
*Operating Systems written in D*
* [PowerNex](https://github.com/PowerNex/PowerNex) - A kernel written in D
* [SerpentOS](https://serpentos.com/) - Snek factory ([source code](https://gitlab.com/serpent-os))
* [Trinix](https://github.com/Rikarin/Trinix) - Hybrid operating system for x64 PC written in D
* [XOmB](https://github.com/xomboverlord/xomb) - An exokernel operating system written in D
* [tilix](https://github.com/gnunn1/tilix) - A tiling terminal emulator for Linux using GTK+ 3.
* [Inochi Creator](https://github.com/Inochi2D/inochi-creator) - Inochi2D Rigging Application.
* [Inochi Session](https://github.com/Inochi2D/inochi-session) - Application that allows streaming with Inochi2D puppets.
## Game Bindings
*Bindings to game development related C libraries.*
*Bindings to game development related libraries in C, C++, and other languages.*
* BindBC libraries - `-betterC` compatible, `@nogc` bindings using [bindbc-loader](https://github.com/BindBC/bindbc-loader):
* OpenGL - [bindbc-opengl](https://github.com/BindBC/bindbc-opengl)
* GLFW 3 - [bindbc-glfw](https://github.com/BindBC/bindbc-glfw)
* SDL 2 - [bindbc-sdl](https://github.com/BindBC/bindbc-sdl)
* SDL2_gfx - [bindbc-sdlgfx](https://github.com/aferust/bindbc-sdlgfx)
* SFML 2 - [bindbc-sfml](https://github.com/BindBC/bindbc-sfml)
* Imgui - immediate UI - [bindbc-imgui](https://github.com/Inochi2D/bindbc-imgui)
* Nuklear - immediate UI - [bindbc-nuklear](https://github.com/Timu5/bindbc-nuklear)
* raylib - [bindbc-raylib](https://github.com/o3o/bindbc-raylib)
* bgfx - [bindbc-bgfx](https://github.com/GoaLitiuM/bindbc-bgfx)
* WebGPU - [bindbc-wgpu](https://github.com/gecko0307/bindbc-wgpu)
* Zstandard - compression - [bindbc-zstandard](https://github.com/ZILtoid1991/bindbc-zstandard)
* nanomsg-next-gen - [bindbc-nng](https://github.com/darkridder/bindbc-nng)
* OpenAL - audio engine - [bindbc-openal](https://github.com/BindBC/bindbc-openal)
* SoLoud - audio engine - [bindbc-soloud](https://github.com/gecko0307/bindbc-soloud)
* KiWi - widget library - [bindbc-kiwi](https://github.com/aferust/bindbc-kiwi)
* NanoVG - vector drawing engine - [bindbc-nanovg](https://github.com/aferust/bindbc-nanovg)
* Blend2D - 2D Vector Graphics Powered by a JIT Compiler - [bindbc-blend2d](https://github.com/kdmult/bindbc-blend2d)
* Lua - [bindbc-lua](https://github.com/BindBC/bindbc-lua)
* JoyShockLibrary - [bindbc-jsl](https://github.com/ZILtoid1991/bindbc-JSL)
* Newton Dynamics - physics engine - [bindbc-newton](https://github.com/gecko0307/bindbc-newton)
* FreeImage - [bindbc-freeimage](https://github.com/BindBC/bindbc-freeimage)
* Assimp5 - [bindbc-assimp](https://github.com/Sobaya007/bindbc-assimp)
* Freetype - [bindbc-freetype](https://github.com/BindBC/bindbc-freetype)
* Harfbuzz - text shaping engine - [bindbc-harfbuzz](https://github.com/DlangGraphicsWG/bindbc-harfbuzz)
* [DerelictOrg](https://github.com/DerelictOrg) - A GitHub organization hosting all Derelict bindings including:
* OpenGL 3 (DerelictGL3),
* Bgfx (DerelictBgfx),
* ENet (DerelictENet),
* SDL 2 (DerelictSDL2),
* GLFW 3 (DerelictGLFW3),
* OpenGLES (DerelictGLES),
* Free Image (DerelictFI),
* Assimp3 (DerelictASSIMP3),
* libtheora (DerelictTheora),
* libogg (DerelictOgg),
* libvorbis (DerelictVorbis),
* SFML 2 (DerelictSFML2),
* libpq (DerelictPQ),
* PhysicsFS (DerelictPHYSFS),
* Open Dynamics Engine (DerelictODE),
* Lua (DerelictLua),
* DevIL (DerelictIL),
* OpenAL (DerelictAL),
* ALURE (DerelictALURE).
* [raylib-d](https://github.com/schveiguy/raylib-d) - D bindings for raylib.
* [sokol-d](https://github.com/kassane/sokol-d) - D bindings for the sokol headers.
* [DAllegro5](https://github.com/SiegeLord/DAllegro5) - D binding/wrapper to Allegro 5, a modern game programming library.
* [DSFML](https://github.com/Jebbs/DSFML) - A static binding of SFML in a way that makes sense for D. See <http://dsfml.com/>.
* [Godot-D](https://github.com/godot-d/godot-d) - D language bindings for the Godot Engine's GDNative API.
* [BindBC](https://github.com/BindBC) - Bindings compatible with `-betterC` and `@nogc`, using [bindbc-loader](https://github.com/BindBC/bindbc-loader).
* [OpenGL](https://github.com/BindBC/bindbc-opengl) - Graphics API
* [GLFW 3](https://github.com/BindBC/bindbc-glfw) - Window/Input library
* [SDL 2](https://github.com/BindBC/bindbc-sdl) - Multimedia library
* [SDL2_gfx](https://github.com/aferust/bindbc-sdlgfx) - Drawing primitives for SDL2
* [SFML 2](https://github.com/BindBC/bindbc-sfml) - Multimedia library
* [Imgui](https://github.com/Inochi2D/bindbc-imgui) - Immediate mode GUI
* [Nuklear](https://github.com/Timu5/bindbc-nuklear) - Immediate mode GUI
* [raylib3](https://github.com/o3o/bindbc-raylib3) - Game library
* [bgfx](https://github.com/GoaLitiuM/bindbc-bgfx) - Cross-Platform renderer
* [WebGPU](https://github.com/gecko0307/bindbc-wgpu) - Modern GPU API
* [Zstandard](https://github.com/ZILtoid1991/bindbc-zstandard) - Fast compression
* [nanomsg-next-gen](https://github.com/darkridder/bindbc-nng) - Messaging library
* [OpenAL](https://github.com/BindBC/bindbc-openal) - Audio library
* [SoLoud](https://github.com/gecko0307/bindbc-soloud) - Audio library
* [KiWi](https://github.com/aferust/bindbc-kiwi) - UI widget toolkit
* [NanoVG](https://github.com/aferust/bindbc-nanovg) - Vector graphics
* [Blend2D](https://github.com/kdmult/bindbc-blend2d) - Vector graphics
* [Lua](https://github.com/BindBC/bindbc-lua) - Scripting language
* [JoyShockLibrary](https://github.com/ZILtoid1991/bindbc-JSL) - Gamepad/Gyro input
* [Newton Dynamics](https://github.com/gecko0307/bindbc-newton) - Physics library
* [FreeImage](https://github.com/BindBC/bindbc-freeimage) - Image loading
* [FreeType](https://github.com/BindBC/bindbc-freetype) - Font rendering
* [HarfBuzz](https://github.com/DlangGraphicsWG/bindbc-harfbuzz) - Text shaping
* [DerelictOrg](https://github.com/DerelictOrg) - Bindings, now largely outdated. BindBC is its modern successor.
* [OpenGLES](https://github.com/DerelictOrg/DerelictGLES) - Graphics API
* [ENet](https://github.com/DerelictOrg/DerelictENet) - Networking library
* [libtheora](https://github.com/DerelictOrg/DerelictTheora) - Video codec
* [libogg](https://github.com/DerelictOrg/DerelictOgg) - Audio codec
* [libvorbis](https://github.com/DerelictOrg/DerelictVorbis) - Audio codec
* [libpq](https://github.com/DerelictOrg/DerelictPQ) - PostgreSQL library
* [PhysicsFS](https://github.com/DerelictOrg/DerelictPHYSFS) - Virtual file system
* [Open Dynamics Engine (ODE)](https://github.com/DerelictOrg/DerelictODE) - Physics library
* [ALURE](https://github.com/DerelictOrg/DerelictALURE) - Audio library
* [DevIL](https://github.com/DerelictOrg/DerelictIL) - Image library
## Game Engine Bindings
## Game Libraries
* [Godot-D](https://github.com/godot-d/godot-d) - D language bindings for the Godot Engine's GDNative API
*D libraries for game development.*
## Game Frameworks
* [InMath](https://github.com/Inochi2D/inmath) - Games math library for D.
*Libraries for 2D-related projects.*
* [DGame](https://github.com/Dgame/Dgame) - A 2D framework for the D programming Language. see <http://dgame-dev.de/>.
* [gfm](https://github.com/drug007/gfm7) - D gamedev toolkit.
* [Dagon](https://github.com/gecko0307/dagon) - 3D game engine for D. see <https://gecko0307.github.io/dagon/>
* [Dash](https://github.com/Circular-Studios/Dash) - A free and open 3D game engine written in D. see <https://circularstudios.com/dash/>.
* [DSFML](https://github.com/Jebbs/DSFML) - A static binding of SFML in a way that makes sense for D. see <http://dsfml.com/>.
* [DAllegro5](https://github.com/SiegeLord/DAllegro5/tree/master/allegro5) - D binding/wrapper to Allegro 5, a modern game programming library.
* [Voxelman](https://github.com/MrSmith33/voxelman) - Plugin-based client-server voxel game engine written in D language
* [PolyplexEngine](https://github.com/PolyplexEngine/libpp) - libpp is an XNA like framework written in D.
* [Parin](https://github.com/Kapendev/parin) - A delightfully simple 2D game engine.
* [PixelPerfectEngine](https://github.com/ZILtoid1991/pixelperfectengine) - 2D graphics engine written in D.
* [HipremeEngine](https://github.com/MrcSnm/HipremeEngine) - Cross Platform D-Lang Game Engine with scripting support.
*Libraries for 2D/3D-related projects.*
* [rengfx](https://github.com/bmchtech/rengfx) - lightweight, expressive, extensible 2D/3D game engine.
*Libraries for 3D-related projects.*
* [Dagon](https://github.com/gecko0307/dagon) - 3D game engine for D. See: <https://gecko0307.github.io/dagon/>
* [Voxelman](https://github.com/MrSmith33/voxelman) - Plugin-based client-server voxel game engine written in D language.
## Games
* [Spacecraft](https://github.com/Ingrater/Spacecraft) - A 3d multiplayer deathmatch space game written in D 2.0.
* [Dtanks](https://github.com/kingsleyh/dtanks) - Robot Tank Battle Game.
* [Electronvolt (formerly Atrium)](https://github.com/gecko0307/electronvolt) - FPS game with physics based puzzles using OpenGL.
* [Backgammony](https://github.com/jonathanballs/backgammony) - A Backgammon GUI for Linux built with Gtk.
* [Worms Within](https://kapendev.itch.io/worms-within) - A bite-sized escape room game.
* [Clean & Haunted](https://kapendev.itch.io/clean-haunted) - Clean a spooky haunted house.
* [Runani](https://kapendev.itch.io/runani) - An endless runner game where you help cute animals.
* [A Short Metamorphosis](https://kapendev.itch.io/a-short-metamorphosis) - A cute visual novel about looking at an egg.
## Internationalization
* [bindbc-icu](https://github.com/shoo/bindbc-icu) - bindbc bindings for the unicode ICU library.
## Video applications
* [DerelictGL3](https://github.com/DerelictOrg/DerelictGL3) - A dynamic binding to OpenGL for the D Programming Language.
## Image Processing
* [ArmageddonEngine](https://github.com/CyberShadow/ae/tree/master/utils/graphics) - 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](http://blog.thecybershadow.net/2014/03/21/functional-image-processing-in-d/).
@@ -487,13 +485,6 @@
* [color.d](https://github.com/adamdruppe/arsd/blob/master/color.d) + [bmp.d](https://github.com/adamdruppe/arsd/blob/master/bmp.d), [jpg.d](https://github.com/adamdruppe/arsd/blob/master/jpg.d), [png.d](https://github.com/adamdruppe/arsd/blob/master/png.d) - basic color struct, HSL functions and reading and writing image files
* [opencvd](https://github.com/aferust/opencvd) - Unofficial OpenCV binding for D
## End-user applications
* [Cryptic-Resolver](https://github.com/cryptic-resolver/cr_D) - Manage cryptic commands' names, acronyms and your own knowledge base (a command line utility)
* [Inochi Creator](https://github.com/Inochi2D/inochi-creator) - Tool to create and edit Inochi2D puppets
* [Literate](https://github.com/zyedidia/Literate) - A literate programming tool for any language
* [onedrive](https://github.com/abraunegg/onedrive) - #1 Free OneDrive Client for Linux
* [tshare](https://github.com/trikko/tshare) - fast file sharing from cli, using transfer.sh
## Machine Learning
* [vectorflow](https://github.com/Netflix/vectorflow) - Nexflix's opensource deep learning framework.
@@ -501,14 +492,15 @@
* [grain2](https://github.com/ShigekiKarita/grain2) - Autograd and GPGPU library for dynamic neural networks in D
* [tfd](https://github.com/ShigekiKarita/tfd) - Tensorflow wrapper for D
## Parallel computing
## Parallel Computing
* [DCompute](https://github.com/libmir/dcompute) - [GPGPU with Native D for OpenCL and CUDA](https://dlang.org/blog/2017/07/17/dcompute-gpgpu-with-native-d-for-opencl-and-cuda/)
* [DerelictCUDA](https://github.com/DerelictOrg/DerelictCUDA) - Dynamic bindings to the CUDA library for the D Programming Language.
* [DerelictCL](https://github.com/DerelictOrg/DerelictCL) - Dynamic bindings to the OpenCL library for the D Programming Language.
## Scientific
*Scientific programming*
*Scientific programming.*
* [scid](https://github.com/DlangScience/scid) - Scientific library for the D programming language
* [dstats](https://github.com/DlangScience/dstats) - A statistics library for D.
@@ -527,27 +519,55 @@
* [eBay's TSV utilities](https://github.com/eBay/tsv-utils/) - Filtering, statistics, sampling, joins and other operations on TSV files. Very fast, especially good for large datasets.
## Logging
*Print with care.*
- [std.experimenatal.logger](https://dlang.org/phobos/std_experimental_logger.html) - Phobos's upcoming standard logging facility
- [dlogg](https://github.com/NCrashed/dlogg) - Logging for concurrent applications and daemons with lazy and delayed logging, [logrotate](https://linux.die.net/man/8/logrotate) support.
* [dlog](https://github.com/deavmi/dlog) - extensible logging framework with message transformation support and custom loggers and contexts
* [std.experimenatal.logger](https://dlang.org/phobos/std_experimental_logger.html) - Phobos's upcoming standard logging facility.
* [dlogg](https://github.com/NCrashed/dlogg) - Logging for concurrent applications and daemons with lazy and delayed logging, [logrotate](https://linux.die.net/man/8/logrotate) support.
## Configuration
*Parsing configuration files*
- [sdlang](https://github.com/Abscissa/SDLang-D) - An SDL (Simple Declarative Language) library for D.
- [D:YAML](https://github.com/dlang-community/D-YAML) - YAML parser and emitter for the D programming language.
- [inifile-D](https://github.com/burner/inifiled) - A compile time ini file parser and writter generator for D
*Parsing configuration files.*
* [sdlang](https://github.com/Abscissa/SDLang-D) - An SDL (Simple Declarative Language) library for D.
* [D:YAML](https://github.com/dlang-community/D-YAML) - YAML parser and emitter for the D programming language.
* [inifile-D](https://github.com/burner/inifiled) - A compile time ini file parser and writter generator for D
## Blog Engine
*Hosting blogs yourself*
- [mood](https://github.com/mihails-strasuns/mood) - simple vibe.d based blog engine
*Hosting blogs yourself.*
* [mood](https://github.com/mihails-strasuns/mood) - simple vibe.d based blog engine
## Dependency Injection
*Apply inversion of control*
- [Poodinis](https://github.com/mbierlee/poodinis) - A dependency injection framework for D with support for autowiring.
*Apply inversion of control.*
## Other Awesome Lists
Other amazingly awesome lists can be found in the [awesome-awesome](https://github.com/emijrp/awesome-awesome) and [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) projects.
* [Poodinis](https://github.com/mbierlee/poodinis) - A dependency injection framework for D with support for autowiring.
## Unmaintained
*Old or archived projects saved for reference.*
* [dunit](https://github.com/nomad-software/dunit) - Advanced unit testing & mocking toolkit
* [hunt](https://github.com/huntlabs/hunt) - A refined core library for D programming language. The module has concurrency / collection / event / io / logging / text / serialize and more.
* [hunt-time](https://github.com/huntlabs/hunt-time) - A time library and similar to Joda-time and Java.time api.
* [hunt-validation](https://github.com/huntlabs/hunt-validation) - A data validation library for DLang based on hunt library.
* [collie](https://github.com/huntlabs/collie) - An asynchronous event-driven network framework written in dlang, like netty framework in D.
* [hunt-net](https://github.com/huntlabs/hunt-net) - High-performance network library for D programming language, event-driven asynchonous implemention(IOCP / kqueue / epoll).
* [hunt-http](https://github.com/huntlabs/hunt-http) - HTTP/1 and HTTP/2 protocol library for D.
* [Hunt Framework](https://github.com/huntlabs/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](https://github.com/huntlabs/grpc-dlang) - Grpc for D programming language, hunt-http library based.
* [kissrpc](https://github.com/huntlabs/kissrpc) - Fast and light, flatbuffers based rpc framework.
* [hunt-gossip](https://github.com/huntlabs/hunt-gossip) - A Apache V2 gossip protocol implementation for D programming language.
* [hunt-cache](https://github.com/huntlabs/hunt-cache) - D language universal cache library, using radix, redis and memcached.
* [flatbuffers](https://github.com/huntlabs/flatbuffers) - D Programming Language implementation of the google flatbuffers library.
* [hunt-entity](https://github.com/huntlabs/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](https://github.com/huntlabs/hunt-database) - Hunt database abstraction layer for D programing language, support PostgreSQL / MySQL / SQLite.
* [hunt-console](https://github.com/huntlabs/hunt-console) - Hunt console creation easier to create powerful command-line applications.
* [DWT](https://github.com/d-widget-toolkit/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.
* [LibUI](https://github.com/Extrawurst/DerelictLibui) - Dynamic Binding for [libui](https://github.com/andlabs/libui)
[d.md Github](https://github.com/dlang-community/awesome-d
)