# dhall-lang/dhall-lang

Maintainable configuration files

Repository: https://github.com/dhall-lang/dhall-lang
Canonical: https://ross.abutalabs.com/products/dhall-lang
Homepage: https://dhall-lang.org
Language: Dhall
License: BSD-3-Clause
License Family: permissive
Topics: dhall, configuration-language
Last push: 2026-08-20T19:02:28+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 8, longevity 100
- inputs: {"age_days": 3286, "days_push": 13, "days_rel": 594, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4475, forks 184 (observed 2026-08-28T04:08:51.069632+00:00)

## What it is
Dhall is a programmable, non-Turing-complete configuration language with functions, types, and imports, formally specified so multiple language bindings can evaluate the same files. This repository hosts the language standard, compliance test suite, standard Prelude library, and shared ecosystem infrastructure.

## Use cases
- generate json or yaml config files from a programmable language
- reduce repetition and drift in large kubernetes yaml configs
- safely evaluate untrusted configuration code
- refactor configuration files with semantic hash guarantees
- share a single source of truth config across multiple languages
- validate config files against a type system

## When to choose
- you need maintainable, typed, DRY configuration instead of raw JSON/YAML
- you want safety guarantees like no hangs, crashes, or side effects in config evaluation
- you need one config source consumed by several programming languages via official bindings

## When to avoid
- you need a Turing-complete configuration or scripting language
- your toolchain only accepts plain JSON/YAML and you cannot run converters
- your language has no Dhall binding and external executables are impractical

## Facets
- artifact type: library
- maturity: active
- function: configuration-management, serialization, type-system, interpreter, testing
- domain: programming-languages, developer-tools
- platform: cross-platform, cli, windows
- tags: configuration-language, dhall, json, yaml, language-standard, total-language, semantic-hashing, prelude, devops, configuration-management, linux, macos

## Member repositories
- dhall-lang/dhall-lang (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:51.069632+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:22:06.560858+00:00, confidence not recorded.
  - readme: https://github.com/dhall-lang/dhall-lang (fetched 2026-08-28T04:08:51.069632+00:00, sha 1111281e07c0)
  - homepage: https://dhall-lang.org (fetched 2026-08-29T09:07:01.036173+00:00, sha 8b98d215d0e0)
  - site_page: https://docs.dhall-lang.org/tutorials/Getting-started_Generate-JSON-or-YAML.html (fetched 2026-08-29T09:07:01.045282+00:00, sha ae05f4ed7044)
  - site_page: https://docs.dhall-lang.org/discussions/Core-language-features.html (fetched 2026-08-29T09:07:01.047868+00:00, sha b18bbc325dd4)
  - site_page: https://docs.dhall-lang.org/howtos/FAQ.html (fetched 2026-08-29T09:07:01.050571+00:00, sha fe513c8e13af)
  - site_page: https://docs.dhall-lang.org/howtos/How-to-integrate-Dhall.html (fetched 2026-08-29T09:07:01.064354+00:00, sha 60161a38be4f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
