30 open-source projects similar to dhall-lang/dhall-lang, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Dhall Lang alternative.
Pkl is a configuration-as-code language used to define, validate, and generate structured configuration files. It functions as a type-safe configuration generator that enforces data integrity through a strongly-typed schema, ensuring configuration values meet defined constraints and types during evaluation. The project distinguishes itself by acting as both a configuration file generator and a binding generator. It transforms high-level programmable definitions into static formats such as JSON, YAML, or XML, and produces language-specific source code to synchronize settings and provide type s
Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie
The Common Expression Language specification is a formal standard for a non-Turing-complete expression language designed for safe, portable, and fast logic evaluation. It serves as a cross-language logic standard and a declarative policy language, providing a consistent semantic framework for executing boolean expressions and data transformations across different programming environments. This specification acts as an embedded expression engine that allows applications to integrate portable logic for evaluating user-defined configurations. It is specifically designed to enable safe user-defin
Sprig is a comprehensive library of helper functions designed to extend the Go text template engine. It provides a wide array of custom functions that can be injected into the engine to enable complex data manipulation and logic directly within templates. The project offers specialized capabilities for cryptography, including the generation of private keys, X.509 certificates, and secure password hashes. It also includes advanced logic extensions for semantic versioning comparison, ternary evaluations, and the resolution of environment variables from the host operating system. The library co
This project is a PHP configuration management library used to define, load, and validate application settings. It functions as a configuration merging engine and a schema validator, ensuring that software behaves consistently across different installations. The library acts as a multi-format configuration loader that converts settings from various file types, such as YAML and XML, into a standardized internal format. It allows for the establishment of formal configuration schemas with validation rules and default values to prevent runtime errors caused by invalid inputs. The system supports
This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental principles of the language, including its structural type system, static type analysis, and the process of transpiling typed source files into JavaScript. The material details how to model complex data and reusable type logic using generics, conditional types, and mapped types. It also explains the use of declaration files to provide type safety for external JavaScript libraries and the integration of type checking into existing JavaScript projects via JSDoc annotations. The
Oils is a Unix shell interpreter and scripting language runtime that combines a modern shell language with POSIX and Bash compatibility. It functions as a structured data shell, integrating JSON and J8 formats to manage complex data without relying on string parsing. The system is distinguished by a C++ transpiled interpreter that converts a subset of Python source code into strongly typed C++ for high-performance execution. It features a garbage-collected typed runtime that supports prototype-based polymorphism, lexical closures, and reference-based variable mutation. To decouple shell logic
Troposphere is a Python library for programmatically creating and validating infrastructure as code templates. It serves as a generator for AWS CloudFormation and OpenStack templates, allowing cloud resources to be defined as objects within a general purpose programming language rather than through raw JSON or YAML markup. The project focuses on cloud resource validation by checking property names and data types during the template construction process. This system identifies configuration errors and missing required fields before the infrastructure is exported for deployment. The library co
PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed as a cross-platform frontend language for building safe web applications, utilizing a static type system and a JavaScript compiler to ensure program correctness across browser and server environments. The language is distinguished by its emphasis on mathematical purity, featuring a robust type system with first-class support for monads. It provides a sophisticated toolset for static verification, including algebraic data types, type classes, and automatic type inference to reje
CUE is a constraint-based configuration language designed for data validation, schema definition, and code generation. At its core, it unifies types and values into a single concept, enabling compile-time validation that catches structural and value errors before runtime. The language treats data and constraints as the same thing, allowing a single definition to serve as both a schema and concrete configuration data. CUE distinguishes itself through its constraint-based unification engine, which combines multiple configuration sources into a single coherent result by merging their constraints
This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed language into optimized JavaScript for web browsers. It serves as a frontend architecture framework, providing a static type system and a package manager that enforces semantic versioning. The compiler uses a type-checking engine with automatic type inference to prevent runtime errors and guide code refactoring. It implements a structural pattern for managing application state and rendering user interfaces through a virtual DOM, utilizing immutable data and purity-based state transit
This project is a comprehensive educational resource consisting of a Bash programming tutorial, scripting reference, and Linux command line manual. It provides instructional materials for writing scripts, automating system tasks, and mastering terminal navigation and Unix system administration. The guides cover a wide range of shell environment customization, including prompt styling and the use of aliases. It also provides a shell environment guide for managing configuration files and initializing user environments. The materials detail a broad set of capabilities including control flow log
DNSControl is an infrastructure-as-code tool designed to manage DNS records and zones across multiple providers through a unified, programmable configuration language. By treating DNS as code, it enables teams to maintain consistent infrastructure state, automate record updates, and perform version-controlled management of network settings across diverse cloud, registrar, and network DNS services. The system functions as a multi-provider orchestrator that uses a declarative reconciliation engine to compare local configurations against live remote states. It employs a provider-agnostic abstrac
Amber is a transpiler that translates high-level source code into executable shell scripts for Bash, Zsh, and Ksh. It provides a type-safe environment for shell script generation, allowing for static type validation and the creation of standalone executable scripts. The project distinguishes itself through a compilation process that includes tree-shaking import optimization to reduce output size and template-based script wrapping for custom headers and footers. It utilizes a module-based dependency resolution system with visibility controls to manage code reuse across multiple files. The lan
Phan is a static analyzer and type checker for PHP that identifies bugs and type incompatibilities without executing the code. It serves as a quality gate for continuous integration pipelines and a tool for verifying type safety, specifically checking union types, generics, and array shapes. The project is distinguished by its use of a background daemon and Language Server Protocol implementation, which provide real-time diagnostics and navigation within editors. It also features a baseline-based suppression system that allows developers to record existing errors in a snapshot file to focus e
tmuxp is a tmux session manager and declarative workspace orchestrator that automates the creation and organization of sessions, windows, and panes. It functions as a libtmux automation wrapper, allowing users to define complex terminal layouts and initial shell commands using YAML or JSON configuration files. The project distinguishes itself as a terminal layout snapshot tool capable of capturing the state of a running session and saving it as a reproducible configuration. It further supports terminal workflow automation by executing bootstrap tasks and startup scripts to prepare environment
QLExpress is a dynamic scripting engine and expression language for the Java platform. It functions as a runtime expression evaluator and business rule engine, allowing applications to execute scripts and evaluate business logic without requiring system recompilation. The engine distinguishes itself through a secure scripting sandbox that enforces security policies via class whitelisting and execution timeouts. It supports high-precision mathematics to prevent rounding errors and provides language alias support to create domain-specific languages that resemble natural language. Additional cap
nginxconfig.io is a web-based NGINX configuration generator designed to create and optimize server configuration files through a guided setup process. It functions as a reverse proxy configurator, a web server security tool, and a content delivery optimizer. The tool provides a structured interface to generate configurations for routing external traffic to application backends and hardening servers against vulnerabilities. It focuses on the creation of security headers, encryption profiles, and specific settings for different server environments. The platform covers content delivery optimiza
Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime without requiring the application to be recompiled. The system utilizes a sandboxed logic executor to run expressions without side effects. It ensures program termination by employing instruction-level loop detection to prevent infinite loops and isolates the evaluation process from the host system. The engine employs a bytecode-based virtual machine and abstract syntax tree analysis to achieve ex
Qtile is a programmable tiling window manager and compositor written and configured in Python. It organizes application windows into non-overlapping tiles or floating modes to maximize screen real estate and supports both X11 and Wayland display server protocols. The environment is defined by executing Python scripts, allowing the programmatic customization of keybindings, visual styles, and system behaviors. This approach enables a personalized workspace where the entire user interface and layout logic are managed through a script-based configuration. The project covers broad capability are
cel-go is a Go implementation of the Common Expression Language, providing a type-safe engine for the evaluation of non-Turing complete, side-effect-free expressions. It functions as an embedded expression engine that converts human-readable strings into type-checked abstract syntax trees to ensure safe execution. The system utilizes a compile-once evaluate-many model, parsing and validating expressions into cached programs for repeated execution across different datasets. It further distinguishes itself as a partial state evaluator, using commutative logic to compute results and return resid
docker-gen is a configuration generator that renders text templates into files using metadata retrieved from Docker containers. It functions as a service discovery tool and template-based orchestrator, mapping container state and environment variables to specific destination paths on a host machine's local storage. The tool automates the update of reverse proxy and service discovery settings in real time as containers are started, stopped, or renamed. It employs sequential template processing and helper functions to filter and sort container data, ensuring stable and consistent configuration
The expression-language is a lightweight calculation component and parser tool that compiles and evaluates single-line string expressions against runtime variables. It functions as an expression engine that parses logical expressions into executable code or evaluates them directly against provided variables and functions to power dynamic rule evaluation and configuration. The engine features a complete architecture covering lexical tokenisation, intermediate code generation, and execution caching. It parses expression strings into hierarchical abstract syntax trees to enable programmatic insp
chezmoi is a command-line utility designed to manage and synchronize system configuration files across multiple machines. It uses a local Git repository as the single source of truth, allowing users to track, version, and distribute dotfiles while maintaining a consistent state across diverse operating systems and hardware architectures. The project distinguishes itself through a declarative reconciliation model that computes the difference between the current filesystem and the desired state defined in the repository. It features a robust templating engine that processes configuration files
Elsa Core is a workflow engine framework designed for defining, executing, and managing long-running business processes. It functions as a distributed workflow orchestrator and event-driven trigger system, capable of operating as a multi-tenant platform with secure data isolation. The project distinguishes itself through a flexible approach to workflow definitions, supporting a visual drag-and-drop designer, programmatic C# definitions, and portable JSON specifications. It provides a highly extensible architecture allowing for the development of custom activities and the use of a dynamic expr
This project is a collection of POSIX-compliant shell functions and polyfills designed to replace external binaries with portable, built-in utility implementations. It serves as a compatibility library and utility kit for shell scripting, providing shell-native alternatives to common command line utilities. The library focuses on removing dependencies on external processes by implementing tasks directly within the shell. This includes the use of shell-native sequences for terminal user interface design, such as text coloring and cursor movement, and the use of built-in pattern matching for te
Aviatorscript is a high-performance scripting language and expression evaluation engine designed for integration within Java applications. It enables the dynamic execution of mathematical and logical formulas by compiling script instructions directly into Java bytecode at runtime. The engine distinguishes itself by transforming dynamic logic into machine-readable instructions, allowing for near-native execution speeds. It includes a built-in caching mechanism that stores compiled bytecode to eliminate redundant parsing and compilation overhead during repeated formula execution. This library
cdk8s is an infrastructure as code framework and configuration tool used to define Kubernetes applications using general-purpose programming languages. It transforms high-level, object-oriented code into the standard YAML manifests required for deployment to any Kubernetes cluster. The framework focuses on the creation of reusable abstractions and hierarchical constructs. By utilizing a system of nested components, it allows for the encapsulation of complex configurations into programmable interfaces. The tool provides a workflow for programmable Kubernetes configuration, enabling the genera
This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees. The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowi