D

Awesome D Awesome


精选的D框架,库和软件的精选列表. 灵感来自 awesome-python.

我创建了这个列表,这样当我将来需要一些东西时,它很容易找到. 大多数文件和链接都是从中收集 D forumD wiki,和 D package repository . 探索GitHub还有助于在那里托管许多lib.

如果您在D中知道一个有趣的lib / app,请通过问题或拉取请求告诉我:-).

- 基本信息
- 文件
- 语言相关 
- 其他语言的编译器
-  Common / Utilities
- 网络/网络相关
- 数据库
- GUI
- 操作系统
- 游戏
- 视频
- 图像处理
- 最终用户应用程序(AppImages,Flatpaks,Snaps ......)
- 科学
- 机器学习
- 其他

Official Website

官方网站网址.

Getting Help

当你被卡住时.

People

使D成为语言的人.

  • Walter Bright - D. Walter Bright的父亲是D编程语言的创建者和第一个实现者,并且已经为其他几种语言实现了编译器.
  • Andrei Alexandrescu, PhD - C ++大师. * D编程语言现代C ++设计*的作者. 在Walter Bright的带领下,Andrei共同设计了D的许多重要特征,并创作了D标准库的很大一部分. Andrei是高级C ++编程和算法的培训师,现在正积极地在组织中传播D.
  • - 如果你在D中做了一些有趣的事情,请添加你的信息.这是你,令人敬畏的令人敬畏的人.

Events

  • DConf - D大师在与D语言及其生态系统相关的所有事物上交流知识,洞察力和灵感的首要活动.

Organizations

为D项目做出贡献的组织.

  • D Programming Language - 官方组织,主持DMD,Phobos和其他官方工具和库.
  • LDC Developers - 最不发达国家的项目.
  • DerelictOrg - 一个GitHub组织,托管所有Derelict绑定,包括OpenGL和其他多媒体/游戏相关的库绑定. (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 - D的科学图书馆和工具的焦点和第一个停靠点
  • Circular Studios - 我们是罗彻斯特理工学院的一组游戏开发人员,负责构建游戏和游戏技术. 主机 Dash,用D编写的3D游戏引擎,以及其他相关的库.
  • d-gamedev-team - gamedev相关回购的组织,包括一个名为的D gamedev工具包 gfmopengl tutorial in D.
  • EMSI - 以D为主要语言的职业建筑公司. 托管他们的开源项目.
  • infognition - Infognition是一家自筹资金和自我维持的公司,专门为最终用户和开发人员提供视频处理和压缩技术. 他们提供了几个用D语言编写的开源视频相关应用程序和工具 bitbucket. They are also porting their main product--Video Enchanser 从C / C ++到D.
  • libmir - D的数字图书馆开发团队
  • sociomantic labs - 柏林公司,专门从事在线广告的实时竞标. 主要赞助商 annual D language conference . 开源的大部分代码库都是其中的一部分 tsunami 组织.
  • Symmetry Investments - Symmetry Investments LP是一家投资管理公司,截至2018年12月31日,管理的资产约为47亿美元. Symmetry Autumn of Code . 有赞助的发展 excel-d, dpp, autowrap, mir-algorithm,以及其他各种项目.
  • HuntLabs - 使用DLang的技术小组. 具有纯D语言实现,可快速开发服务器端应用程序并构建分布式系统服务.

Books

  • D相关书籍.*你可以找到另一本书的清单 Books D维基页面.
  • TDPL - * D编程语言*作者:Andrei Alexandrescu.
  • Programming in D - 一本非常详细的书,讲述了AliÇehreli在D中编程,涵盖了该语言的许多领域. 有免费的在线版本,适合初学者.
  • D Cookbook - 配方包装的参考指南,其中包含简明扼要解释的实用任务,以使用D编程语言开发和扩展用户的能力. 作者:Adam D. Ruppe. 这是一个有趣 review of the book.
  • Learning D - 本书适合那些有C语言背景知识并希望学习如何将他们的知识和经验应用于D的人.(...)这本书将帮助你快速掌握语言并避免常见将C族经验转化为D时出现的陷阱
  • D Web Development - 无论您是D世界的新手,还是已经在D中开发了应用程序,或者如果您想利用D的强大功能进行Web开发,那么本书对您来说非常理想.

Tutorials

Bare metal / kernel development

Blogs

  • D相关博客.*

  • blog.dlang.org - 官方博客.

  • /r/d_language on Reddit - 有关D的新闻和博客文章.
  • This week in D - 每周对D社区活动的概述和简要建议栏,以帮助您充分利用D编程语言.
  • Planet D - 由Vladimir Panteleev维护的共同撰写的D特定博客的存储库.
  • D Idioms - 一个很棒的博客,有很多有用的D编程习语.
  • GTK-D coding - 如何使用GtkD构建GUI应用程序的简单示例.

Articles

Package Management

用于包和依赖管理的库.

  • code.dlang.org - 官方D库存储库. 由配音支持.
  • dub - D的官方包装和构建管理系统

Compilers

从源代码编译软件.

  • dmd - D编程语言的参考编译器. 稳定,快速构建,非常适合学习和快速原型设计/开发. 目前前端在D中实现,并在dmd,ldc和gdc之间共享,后端在C ++中实现.
  • ldc - 基于LLVM的D编译器. 使用DMD前端和LLVM后端. 构建比dmd慢,但生成的代码比DMD更优化. 它支持LLVM的所有目标平台.
  • gdc - GNU D编译器. 使用DMD前端和GCC后端. 由于使用GCC,目前针对大多数平台. 在大多数情况下,生成的代码比DMD运行得更快,与LDC相同. 在与官方GCC工具链集成的过程中.
  • sdc - 愚蠢的D编译器. 每天都写在D. Grows Smarter.
  • dil - D编程语言的编译器. 写在D.

Build Tools

管理项目并从源代码编译软件.

  • dub - D的事实上的官方包装和建造管理系统将很快正式包括在内.
  • scons-d - 得益于Russel Winder,Scons内置了对D项目建设的支持.
  • premake - Premake内置了对D项目的支持
  • reggae - D中的元构建系统
  • Makefile - D项目的Makefile模板
  • cmake-d - CMake D项目
  • cook2 - 用于D中项目的快速增量构建工具
  • button - 一个通用的构建系统,只需按一下按钮即可构建您的软件.
  • wild - 野生构建系统,用于构建 PowerNex 核心

IDE

综合发展环境.

  • Mono-D - AD语言插件 Xamarin Studio/MonoDevelop . 有配音支持.
  • Visual D - Visual Studio extension for the D programming language.
  • DDT - 用于D编程语言的Eclipse插件.
  • DCD - D编程语言的独立自动完成程序. 可以与vim,emacs,sublime text,textadept和zeus等编辑器一起使用. 看到 editors support.
  • Coedit - 用于D编程语言的IDE,其编译器,工具和库.
  • Dlang IDE - D语言IDE基于 DlangUI . 这是纯粹的D实现.
  • D Language Server - D的语言服务器协议(LSP)实现.为具有LSP支持的任何编辑器添加现代IDE功能(VSCode,Sublime,Atom,Emacs,Vim / Neovim)

Lexers, Parsers, Parser Generators

  • libdparse - AD语言词法分析器和解析器,(可能)未来的标准D解析器/词法分析器.
  • Martin Nowak's Lexer - 词法分析器.
  • Mono-D's DParser - A D parser written in C# and used in Mono-D.
  • Pegged - 用D编写的解析表达式语法(PEG)模块.
  • Goldie - Goldie解析系统.
  • ctpg - 用D编写的编译时解析器(带转换器)生成器
  • dunnart - LALR(1)用D编写的解析器生成器.

Preprocesors

  • warp - Facebook基础架构中使用的C和C ++快速预处理器. 由Walter Bright撰写.

Javascript

  • higgs - 希尔斯JavaScript虚拟机,在D中实现.

Basic

  • hunt - 用于D编程语言的精致核心库. 该模块具有并发/集合/事件/ io / logging / text / serialize等.
  • hunt-time - 时间库,类似于Joda-time和Java.time api.
  • hunt-validation - 基于寻线库的DLang数据验证库.

Containers

  • EMSI containers - 不使用GC的容器
  • memutils - 开销分配器,分配器感知容器和D对象的生命周期管理
  • dlib.container - 通用数据结构(无GC动态和关联数组等)
  • std.rcstring - 字符串构造中D的构建的引用计数字符串实现

Web Frameworks

网络图书馆 * hunt-net - 用于D编程语言的高性能网络库,事件驱动的异步实现(IOCP / kqueue / epoll). * hunt-http - D的HTTP / 1和HTTP / 2协议库. * hunt-stomp - 用于在D中实现websocket协议库的STOMP. * libasync - 异步对象的跨平台事件循环库 * libhttp2 - D中的HTTP / 2库,从nghttp2翻译而来 * collie - 用dlang编写的异步事件驱动的网络框架,如D中的netty框架.

完整的堆栈Web框架. * Hunt Framework - Hunt是一个高级D编程语言Web框架,鼓励快速开发和干净,务实的设计. 它使您可以快速轻松地构建高性能Web应用程序. * vibe.d - 用D编写的异步I / O Web框架,用D编写. * arsd - Adam D. Ruppe的网络框架. * cmsed - 用作Vibe的Vibe组件库. * Diamond - 基于vibe.d的全栈Web框架,针对小型和大型项目,针对企业开发和高性能Web解决方案.

  • RPC库*
  • grpc - 用于D编程语言的Grpc,基于hunt-http库.
  • kissrpc - 快速,轻便,基于平板缓冲的rpc框架.
  • Hprose - 一个非常新的RPC Library for D,它现在支持25种以上的语言.
  • Apache Thrift - 轻量级,与语言无关,功能强大的RPC框架. Thrift为数据传输,数据序列化,代码生成和应用程序级处理提供了清晰的抽象. Dub package

Gossip

  • hunt-gossip - 用于D编程语言的Apache V2八卦协议实现.

Cache

  • hunt-cache - D语言通用缓存库,使用radix,redis和memcached.

Data serialization

  • Json,XML,protobuf和其他数据序列化库.*

Binary Serilization

  • flatbuffers - 谷歌平板电脑库的D编程语言实现.
  • cerealed - D的序列化库
  • dproto - D中的Google Protocol Buffer支持

JSON

  • vibe.data.json - Vibe.d中的JSON函数. 目前我使用的最佳实现.
  • fast.json - D的库,旨在尽可能快地实现一些日常工作.
  • std.json - D的标准库JSON模块. 需要改进.
  • painlessjson - 在D类型和std.json之间转换.
  • std.data.json - 用于JSON序列化的Phobos候选者(基于Vibed)
  • asdf - 基于缓存的基于字符串的JSON表示,用于快速读写和序列化.

XML

  • orange - 通用序列化程序(目前仅支持XML)
  • std.experimental.xml - 用于XML序列化的Phobos候选者
  • [dom.d] - 基于Javascript在浏览器中提供的内容的xml / html DOM

Database clients

客户端和绑定到关系和nosql数据库的C bliencts.

  • hunt-entity - Hunt实体是D编程语言的对象关系映射工具. 参考JPA的设计思想,支持PostgreSQL / MySQL / SQLite.
  • hunt-database - 为D编程语言寻找数据库抽象层,支持PostgreSQL / MySQL / SQLite.
  • vibe.d - Vibe.d对Redis和MongoDB有内部支持,非常稳定. 很快,数据库驱动程序将被分成独立的项目.
  • mysql-native - 在本机D中实现的MySQL客户端
  • ddb - D2的数据库访问. 目前只支持PostgreSQL.
  • arsd - Adam D. Ruppe的图书馆; 除了Web后端之外,它还支持使用database.d,sqlite.d,mysql.d和postgres.d进行数据库访问.
  • ddbc - DDBC是D语言的DB Connector(类似于JDBC). HibernateD(见下文)使用ddbc进行数据库抽象.
  • hibernated - HibernateD是D的ORM(类似于 Hibernate).
  • dvorm - 支持Vibe的D的ORM. 与vibe.d和mysql-d一起使用,使其能够访问MongoDB和MySQL.
  • Tiny Redis - Redis驱动程序为D.快速,简单,稳定. 没有依赖关系.

Command Line

  • hunt-console - Hunt控制台创建更容易创建功能强大的命令行应用程序.
  • tilix - 使用GTK + 3的Linux平铺终端仿真器.
  • scriptlike - 实用程序库,用于帮助在D中编写类似脚本的程序.
  • todod - Todod是一个基于命令行的待办事项列表管理器. 它还支持基于shell的shell交互 linenoise.
  • d-colorize - 红宝石图书馆的一个端口 colorize . 它添加了一些方法来使用ANSI转义序列更轻松地在控制台上设置颜色,背景颜色和文本效果.
  • terminal.d - Adam Ruppe的一部分 arsd 库支持控制台上的光标和颜色操作.
  • dexpect - 期望框架的AD实施. 方便bash仿真.
  • Argon - 用于命令行参数的处理器,Getopt的替代方法,用D编写.
  • argsd - DLang的命令行和配置文件解析器
  • darg - 针对D的强大命令行参数解析

GUI Libs

用于处理图形用户界面应用程序的库.

  • DLangUI - 用于D编程语言的跨平台GUI. 我的个人偏好,因为它是用D(不是绑定)编写的,而且是跨平台的. DLangUI在IDE中也有很好的展示 DLangIDE.
  • GtkD - GtkD是GTK +的D绑定和OO包装器. GtkD是积极维护的,目前是D中最稳定的GUI库.
  • DWT - 用于创建跨平台GUI应用程序的库. GWT是Java的SWT库的一个端口.DWT被提升为D的半标准GUI库,但遗憾的是还没有流行起来.
  • tkD - 基于Tcl / Tk的D编程语言的GUI工具包.
  • dqml - Q编程语言的Qt绑定.
  • Sciter-Dport - D绑定 Sciter - 跨平台HTML / CSS /脚本桌面UI工具包.
  • LibUI - Dynamic Binding for libui

注意:您还可以找到GUI库列表 wiki.dlang.org,但并非现在所有的库都得到了积极维护.

OS

用D 编写的操作系统

  • PowerNex - 用D编写的内核
  • Trinix - 用D编写的x64 PC混合操作系统
  • XOmB - 用D编写的外部操作系统

Game Bindings

绑定到游戏开发相关的C库.

  • DerelictOrg - 托管所有Derelict绑定的GitHub组织,包括:
    • OpenGL 3(DerelictGL3),
    • Bgfx(DerelictBgfx),
    • ENet(DerelictENet),
    • SDL 2(DerelictSDL2),
    • GLFW 3(DerelictGLFW3),
    • OpenGLES(DerelictGLES), *免费图像(DerelictFI),
    • Assimp3(DerelictASSIMP3),
    • libtheora(DerelictTheora),
    • libogg(DerelictOgg),
    • libvorbis(DerelictVorbis),
    • SFML 2(DerelictSFML2),
    • libpq(DerelictPQ),
    • PhysicsFS(DerelictPHYSFS), *开放动力引擎(DerelictODE),
    • Lua(DerelictLua),
    • DevIL(DerelictIL),
    • OpenAL(DerelictAL),
    • ALURE(DerelictALURE).

Game Frameworks

Games

Video applications

  • DerelictGL3 - 用于D编程语言的动态绑定到OpenGL.

Image Processing

  • ArmageddonEngine - Vladimir Panteleev的ae库有一个功能样式的图像处理包,在文章中有描述 Functional Image Processing in D.
  • Blogsort - 一个简单的Windows应用程序,用于查看照片并为博客做好准备.
  • dlib.image - 图像处理(每通道8位和16位,浮点运算,滤波,FFT,HDRI,图形格式支持,包括JPEG和PNG)
  • color.d + bmp.d, jpg.d, png.d - 基本颜色结构,HSL功能以及读写图像文件

End-user applications

  • Drill - 搜索文件而不进行索引,但巧妙地抓取

Machine Learning

  • vectorflow - Nexflix的开源深度学习框架.

Parallel computing

Scientific

科学编程

  • scid - D编程语言的科学库
  • dstats - D的统计库.
  • mir - 沙盒用于一些镜像包:稀疏张量,霍夫曼等.
  • mir-algorithm - N维阵列(矩阵,张量),算法,通用库.
  • mir-random - 高级随机数发生器.
  • decimals - D的十进制库

Text Processing

  • hunt-markdown - D编程语言的降价解析和渲染库. 支持commonMark.
  • eBay's TSV utilities - TSV文件的过滤,统计,采样,连接和其他操作. 非常快,特别适合大型数据集.

Logging

小心打印.

Configuration

解析配置文件

  • sdlang - D的SDL(简单声明语言)库.
  • D:YAML - 用于D编程语言的YAML解析器和发射器.
  • inifile-D - D的编译时ini文件解析器和写入器生成器

Blog Engine

自己托管博客

  • mood - 简单的基于vibe.d的博客引擎

Testing

  • dunit - 高级单元测试和模拟工具包
  • unit-threaded - 多线程单元测试框架

Other Awesome Lists

其他惊人的令人敬畏的名单可以在 awesome-awesomeawesome-awesomeness 项目.