Discover and explore top open-source AI tools and projects—updated daily.
yamlProgramming language for YAML data manipulation and dynamic execution
Top 54.5% on SourcePulse
Programming in YAML (YS) is a novel approach that embeds a functional programming language within YAML files, allowing for dynamic data processing, transformation, and complex logic directly in configuration or data files. It targets developers who need more than static YAML parsing, offering a consistent and powerful YAML processing solution across 15+ programming languages with a unified syntax and feature set.
How It Works
YS processes YAML by first loading it into a Lisp Abstract Syntax Tree (AST) rather than directly into native data structures. This AST is then rendered into Clojure code and evaluated by a full-featured runtime. This AST-centric design enables YS to support advanced features like file imports, string interpolation, and a standard library, effectively treating YAML as a programming language. While Clojure is used internally, YS compiles to a native binary and shared library, eliminating the need for JVM or JavaScript runtimes for its core functionality.
Quick Start & Requirements
curl https://yamlscript.org/install | bashhttps://yamlscript.org/installYS Documentation (URL not provided)Learn YS at ExercismHighlighted Details
!ys-0 tag for dynamic data generation, calculations, and transformations.ys) and libraries for querying, manipulating, and transforming YAML and JSON into various formats (YAML, JSON, CSV, TSV, EDN).Maintenance & Community
The project is led by Ingy döt Net, with contributions from Ven de Thiel, Delon R.Newman, Josephine Pfeiffer, Andrew Pam, Kenta Murata, José Joaquín Atria, tony-o, and Ethiraric. Resources include YS Documentation, YS Blog, and examples on RosettaCode.org.
Licensing & Compatibility
Licensed under the permissive MIT (X11) License, allowing for commercial use and integration into closed-source projects. It is 100% compatible with existing YAML files.
Limitations & Caveats
Current native compilation via GraalVM limits supported operating systems to Linux, macOS, and (upcoming) Windows, and architectures to x86_64 and aarch64. Efforts are underway to support alternative runtimes like JVM, JavaScript, and WebAssembly to broaden compatibility.
3 days ago
Inactive
AntonOsika