The Dhall configuration language

The non-repetitive alternative to YAML

Dhall is a programmable configuration language that you can think of as: JSON + functions + types + imports


Dhall supports comments, multi-line string literals and string interpolation with non-technical users in mind.

You can also automatically remove all indirection in any Dhall code, converting the file to a logic-free normal form for non-programmers to understand.

Learn More

Turing-completeness is not a feature

Dhall is programmable, but NOT Turing-complete.

We take language security seriously so that your Dhall programs never fail, hang, crash, leak secrets, or compromise your system.

The language aims to support safely importing and evaluating untrusted Dhall code, even code authored by malicious users. We treat the inability to do so as a specification bug.

Safety Guarantees

Integration friendly

Dhall provides a smooth migration path for mature enterprise deployments.

You can convert both ways between Dhall and JSON/YAML or read Dhall configuration files directly into a language that supports a native language binding.


Tired of YAML?

Dhall eliminates the YAML quirks that software engineers dread. The language standard learns from the mistakes of the past.

You can also generate either YAML or JSON from Dhall configuration files using tiny statically-linked binaries. Dhall can cheaply fit right in with your existing tools and infrastructure.

Get Started

This work is licensed under a Creative Commons Attribution 4.0 International License.