Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. D
  3. D:YAML

D:YAML

BSL-1.0Dv0.10.0

A YAML 1.1-compliant parser and emitter library for the D programming language, designed for ease of use and full feature support.

Visit WebsiteGitHubGitHub
123 stars44 forks0 contributors

What is D:YAML?

D:YAML is a YAML parser and emitter library for the D programming language, enabling developers to read, write, and manipulate YAML data with almost full compliance to the YAML 1.1 specification. It solves the problem of handling YAML files in D applications by providing a robust, feature-complete alternative to building custom parsers.

Target Audience

D programmers who need to work with YAML for configuration, data serialization, or interoperability with other systems that use YAML.

Value Proposition

Developers choose D:YAML for its high-level API, comprehensive YAML 1.1 support, and memory-efficient design, offering a reliable and easy-to-integrate solution compared to manual parsing or less complete libraries.

Overview

YAML parser and emitter for the D programming language

Use Cases

Best For

  • Parsing YAML configuration files in D applications
  • Emitting YAML data for interoperability with other systems
  • Handling YAML anchors and aliases in complex data structures
  • Working with both block-style and flow-style YAML syntax
  • Implementing custom YAML tags and implicit type resolution
  • Minimizing memory allocations when processing YAML input

Not Ideal For

  • Projects that need to parse YAML with recursive data structures, as D:YAML explicitly does not support this.
  • Multi-language systems where YAML processing is required outside the D programming language ecosystem.
  • Applications demanding full YAML 1.2 compliance, since D:YAML is based on YAML 1.1 with documented differences.

Pros & Cons

Pros

Full YAML 1.1 Support

Parses all constructs from the specification, including block and flow styles, anchors, aliases, and custom tags, with all examples from the spec handled correctly.

Memory-Efficient Design

Reuses input memory and uses slices to minimize allocations, optimizing performance for handling large or frequent YAML data.

High-Level API and Docs

Offers an easy-to-use interface with detailed debugging messages, comprehensive tutorials, and code examples for quick integration.

Style Preservation

Remembers YAML style information between loading and dumping when possible, ensuring output consistency with input formatting.

Cons

No Recursive Structure Support

Explicitly lacks support for recursive data structures in YAML, a limitation for complex nested data that the README admits with no plans to implement.

UTF-8 Only Encoding

Exclusively supports UTF-8 encoding, making it unsuitable for systems using other text encodings like UTF-16 or legacy formats.

Incomplete Spec Compliance

Admitted to be 'almost' compliant with YAML 1.1, with documented differences that could cause edge-case issues in strict parsing scenarios.

Frequently Asked Questions

Quick Stats

Stars123
Forks44
Contributors0
Open Issues17
Last commit6 months ago
CreatedSince 2011

Tags

#d-language#yaml#library#emitter#yaml-parser#dlang#file-format#data-interchange#configuration#serialization#parser

Built With

D
D

Links & Resources

Website

Included in

D748
Auto-fetched 19 hours ago

Related Projects

sdlangsdlang

An SDLang (Simple Declarative Language) library for D

Stars121
Forks21
Last commit3 years ago
inifile-Dinifile-D

a compile time ini file parser and writter generator for D

Stars22
Forks9
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub