Awesome D
=========
A curated list of awesome D frameworks, libraries and software. Inspired by awesome-python.
I created this list so that when I needed something in the future, it would be easy to find. Most documents and links are collected from D forum, D wiki, and D package repository. Exploring github also helps a lot as MOST of the libs are hosted on github.
- Awesome D
- Basic Information
- Language Related
- Documents
- Web Related
- Database
- GUI
- Others
- Other Awesome Lists
Official Website
Official Website urls.
- dlang.org - Official website for D.
- wiki.dlang.org - Offical Wiki for D.
- Github Organization - D Official Github organization. Repo for all D official tools & codes.
- forum.dlang.org - Offical Forum. Lots of interesting discussions happens EVERY DAY.
- Language Specification - D programming language specification.
- Issue tracking - Offical issue tracking/reporting system for D. If you find bugs about D compilers and libraries, please come and report!
Package Management
Libraries for package and dependency management.
- code.dlang.org - Offial D library repository. Backed by dub.
- dub - (Official) Package and build management system for D.
Compilers
Compile software from source code.
- dmd - The reference compiler for the D programming language. Stable, builds insanely fast, very good for learning and prototype/dev mode. Currently implmented in C++, but is in the process of converting to D implementation.
- 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 target platforms as LLVM does.
- gdc - GNU D Compiler. Use dmd frontend and GCC backend. Currently targets the most platforms due to GCC. Generated code runs faster than dmd in most cases, on par with ldc. In the process of integrating in GCC toolchain.
- sdc - The Stupid D Compiler. Written in D. Grows Smarter every day.
- dil - A compiler for the D programming language. Written in D.
Build Tools
Manage projcets and compile software from source code.
- dub - (Official) Package and build management system for D. It's now the de facto package manager and builder for D, and will be included officially soon.
- scons-d - Scons has builtin support for building D projects, thanks to Russel Winder.
IDE
Integrated Development Environment.
- Mono-D - A D language addin for Xamarin Studio/MonoDevelop. With dub support.
- Visual D - Visual Studio extension for the D programming language.
- DDT - Eclipse plugin for the D programming language.
- DCD - Independent auto-complete program for the D programming language. Could be used with editors like vim, emacs, sublime text, textadept, zeus. See editors support.
Lexers, Parsers, Parser Generators
- libdparse - A D language lexer and parser, (possibly) future standard D parser/lexer.
- Martin Nowak's Lexer - A lexer generator.
- Mono-D's DParser - A D parser written in C# and used in Mono-D.
- Pegged - A Parsing Expression Grammar (PEG) module, using the D programming language.
- Goldie - Goldie Parsing System.
- ctpg - Compile-Time Parser (with converter) Generator in D programming language.
- dunnart - LALR(1) Parser Generator for the D Programming Language.
Books
D related books.
- TDPL - The D Programming Language by Andrei Alexandrescu.
- Programming in D - A very detailed book about programming in D by Ali Çehreli touching many areas in the language. Has a free online version, suited 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.
Tutorials
D related tutorials.
- 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.
- 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/UCFS for functional style programming.
- Component programmiong in D - An article written by Walter Bright that elicits how D's functional support leads to a flexible and beautiful component programming style.
Web Frameworks
Full stack web frameworks.
- 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.
Database clients
Clients and bindings to C bliencts for relational and nosql databases.
- vibe.d - Vibe.d has internal support for Redis and MongoDB, which are very stable. Soon they would be separated out to be independent projects.
- mysql-native - A MySQL client implemented in native D. Also the version is still 0.0.15, it is quite usable now.
- ddb - Database access for D2. Currently, only PostgreSQL client.
- arsd - Adam D.Ruppe's library, in addition to Web stuff, it also has support for database access with database.d, sqlite.d, mysql.d and postgres.d.
- ddbc - DDBC is DB Connector for D language (similar to JDBC), hibernated is based on ddbc.
- hibernated - HibernateD is ORM for D language (similar to Hibernate).
- dvorm - An orm for D with Vibe support. works with vibe.d and mysql-d, so it can access mongodb and mysql-d.
Command Line
- scriptlike - Utility library to aid writing script-like programs in D.
- todod - Todod is a command line based todo list manager. It also has support for shell interaction based on linenoise.
GUI Libs
Libraries for working with graphical user interface applications.
- GtkD - GtkD is a D binding and OO wrapper of GTK+. GtkD is actively maintained and is the most stable GUI lib in D now.
- DWT - A library for creating cross-platform GUI applications. GWT is a port from Java SWT library to D.
- tkD - GUI toolkit for the D programming language based on Tcl/Tk
Note: You can also find a list of GUI libs on wiki.dlang.org. But not all of them are actively maintained now.
Other Awesome Lists
Other amazingly awesome lists can be found in the awesome-awesomeness list.