Maintainable configuration files (by dhall-lang)


Basic dhall-lang repo stats
7 days ago

dhall-lang/dhall-lang is an open source project licensed under BSD 3-clause "New" or "Revised" License which is an OSI approved license.

Dhall-lang Alternatives

Similar projects and alternatives to dhall-lang

  • GitHub repo terraform

    Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

  • GitHub repo Pulumi

    Pulumi - Modern Infrastructure as Code. Any cloud, any language 🚀

  • GitHub repo config

    configuration library for JVM languages using HOCON files

  • GitHub repo cue

    Validate and define text-based and dynamic configuration

  • GitHub repo rust

    Empowering everyone to build reliable and efficient software.

  • GitHub repo terragrunt

    Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.

  • GitHub repo edn

    Extensible Data Notation

  • GitHub repo pyyaml

    Canonical source repository for PyYAML

  • GitHub repo tab-rs

    The intuitive, config-driven terminal multiplexer designed for software & systems engineers

  • GitHub repo dhall-kubernetes

    Typecheck, template and modularize your Kubernetes definitions with Dhall

  • GitHub repo kubernetes

    Production-Grade Container Scheduling and Management

  • GitHub repo CPython

    The Python programming language

  • GitHub repo ripgrep

    ripgrep recursively searches directories for a regex pattern while respecting your gitignore

  • GitHub repo ShellCheck

    ShellCheck, a static analysis tool for shell scripts

  • GitHub repo Tmuxinator

    Manage complex tmux sessions easily

  • GitHub repo wasmer

    🚀 The leading WebAssembly Runtime supporting WASI and Emscripten

  • GitHub repo zig

    General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

  • GitHub repo vim-lsp

    async language server protocol plugin for vim and neovim

  • GitHub repo snippets

  • GitHub repo actions

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better dhall-lang alternative or higher similarity.


Posts where dhall-lang has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-06-11.
  • Useful minimal languages
    Dhall is a pretty small language. Here's a recent discussion on the difficulty of implementing it: https://github.com/dhall-lang/dhall-lang/issues/1182
  • Terraform 1.0 Release
    news.ycombinator.com | 2021-06-08
    This would be great. Perhaps it could be based on https://dhall-lang.org/
  • JsonLogic
    news.ycombinator.com | 2021-05-27
    > but let's say we need to share these credential objects between different systems that do not have prior knowledge of how to evaluate the credential data

    Well, they _must_ have prior knowledge about it, because they must have to understand the concept of JsonLogic beforehand. So instead, you can just make these systems understand a proper programming language that can produce outputs. Something like https://github.com/dhall-lang/dhall-lang would probably be a much better option for this usecase.

  • Jolie, the service-oriented programming language
    news.ycombinator.com | 2021-05-17
  • The Siren Song of Declarative Programming
    How do you compute with JSON? You need to specify which program you use as "compiler", "interpreter" or "runner". Many programs also only use a subset of JSON, a specific schema, so then you are really using a sub-language. On the other hand, I would classify dhall as a programming language; it even has things like functions, but it is not Turing complete. So maybe you could see JSON as a very simple programming language for describing data that other programs can use.
  • The Dhall configuration language: maintainable configuration files
    news.ycombinator.com | 2021-05-03
  • Write Gitlab CI Pipelines in Python Code
    news.ycombinator.com | 2021-04-29
    I think the only exit to this cycle is something like dhall, which adds features like functions and imports, but is "total" / forbids side-effects. https://dhall-lang.org/
  • The language strangeness budget (2015)
    The reason why I shared this is because I felt pain when I’m converting my YAML to Dhall, a type safe configuration language that reduces duplications. The main reason that drives me to use Dhall in production is the type safety and function declarations, but I personally find it too painful (pain is expected but not this much) to change although they provide a YAML-to-Dhall converter because the syntax is too alien (IMO a weird hybrid between Haskell and Typescript), and because of that I spend way more time than expected to complete the transition, and it’s also hard to get approvals from my colleagues because they can barely read the syntax.
  • Zellij – A Terminal Workspace and Multiplexer Written in Rust
    news.ycombinator.com | 2021-04-22
  • Has there ever been a new feature added to a language long after 1.0, which was later removed because of unforeseen problems?
    The configuration language Dhall used to have a rule Sort ~> Kind, but this lead to issues due to Hurken's paradox https://github.com/dhall-lang/dhall-lang/issues/250
  • [question] write a configuration file
    reddit.com/r/Julia | 2021-04-16
    Oh and for future reference, have a look at Dhall. There's no parser for it in Julia (yet) and it's probably needlessly complicated for your use case, but I always like to spread the word :D
  • GitHub investigating crypto-mining campaign abusing its server infrastructure
    I assume at commit time on the local machine. I'm doing something similar for a new PoC project with Dhall, using something like https://github.com/regadas/github-actions-dhall
  • The Norway Problem
    news.ycombinator.com | 2021-04-03
  • Speed of Rust vs. C
    news.ycombinator.com | 2021-03-12
    > Languages like Idris and Agda are different because sometimes code isn’t executed at all. A proof may depend on knowing that some code will terminate without running it.

    Yes. They are rather different in other respects as well. Though you can produce executable code from Idris and Agda, of course.

    > With respect to deadlocks, there’s little practical difference between an infinite loop and a loop that holds the lock for a very long time.

    Yes, that's true. Though as a practical matter, I have heard that it's much harder to produce the latter by accident, even though only the former is forbidden.

    For perhaps a more practical example, have a look at https://dhall-lang.org/ which also terminates, but doesn't have nearly as much involved proving.

  • Template engines / expression languages for YAML?
    reddit.com/r/scala | 2021-03-10
    There's Dhall which will let you generate JSON or YAML.