Program in YAML — Code is Data

YAMLScript is a new functional programming language with a clean syntax that is also 100% valid YAML. It was designed to be easily embedded into existing YAML files in order to provide the logic, interpolation and data transformation capabilities that many YAML users need. Created by YAML inventor and lead maintainer, Ingy döt Net, YAMLScript solves these needs beautifully for all YAML users and uses.

YAMLScript is now available as a programming language learning track on Exercism. It's a great way to learn YAMLScript and get feedback from experienced mentors. Check it out!

If you work with apps and frameworks that use YAML for configuration, you can simplify your complex YAML files using YAMLScript, even if the app or framework does not support it natively. YAMLScript lets you include data from external files and other sources, make use of hundreds of existing standard functions, and even define your own variables and functions. You can filter, map, merge, reduce, generate, concatenate, interpolate and manipulate your data as you wish. YAMLScript provides these things with syntax that is minimal and unobtrusive, keeping your clean YAML data clean.

Slides and information from Ingy's KubeCon 2024 talk are available here. The highlight was HelmYS a new Helm post-renderer that lets you template Helm charts with YAMLScript (which is actual YAML).

Like many new languages, YAMLScript was built over an existing robust language, Clojure, which in turn was built over Java. The power of Clojure and Java is available to YAMLScript users via the YAMLScript runtime interpreter, ys. However, the ys command is compiled into a single standalone native binary executable file. This means that No Java or JVM installation is required to use YAMLScript, and startup/execution speed is very fast.

YAMLScript also produces the libyamlscript.so shared library. It has binding modules for 10 programming languages including Go, JavaScript, Python and Rust, with many more on the way. These modules can be used in your programs to load normal YAML files as well as YAMLScript enhanced ones.

YAMLScript Use Cases

There are many ways to use YAMLScript:


YAMLScript Resources


YAMLScript Links


Recent Posts

  • | 8 min read
    #blog

    The Kubernetes Effect

    In my many years of creating Open Source software and talking about it at conferences, some of the most productive development times are often those leading up to the presentation. In the last post, I...

    read article
  • | 5 min read
    #blog

    The Fall of YAMLScript!

    (or Exciting YAMLScript News for Fall 2024!) Greetings! It's been over 3 months since the last blog post here. Just to be clear, the YAMLScript project is alive and fantastic! We've just been busy as...

    read article
  • | 2 min read
    #blog

    Go Julia!

    Last week two new language bindings were added to the YAMLScript family: Go and Julia. Go The Go binding has been a long time coming. Several people have been working on it this year but it was Andrew...

    read article
  • | 5 min read
    #blog

    Dr. StrangeYAML or How I Learned to Stop Worrying and Love the LLM

    Well now, what happened is, uh, one of our data scientists, uh, well, he went a little funny in the head. You know. Just a little funny. And uh, he went and did a silly thing. Well, I'll tell you...

    read article
  • | 6 min read
    #blog

    YAMLScript Spring Update

    It's been a while since I let you know what's been happening with YAMLScript. I've been busy working on it every day this year and I have a lot to tell you about! YAMLScript Activity in 2024 Let me...

    read article
  • | 3 min read
    #blog

    YAMLScript Firsts

    Remember Your First Time? Do you remember the first time you wrote a program in a new language? For YAMLScript, mine was yesterday! This is my first post of 2024. I've been working on YAMLScript...

    read article
  • | 1 min read
    #blog #advent-2023

    2023 Advent Index

    Welcome to the 2023 YAMLScript Advent Blog!   Dec 24 - Wrapped and Ready Dec 23 - Perl to Rust Dec 22 - Flip Flops Dec 21 - YAML, Python and the Holy Graal Dec 20 - Godspeed Dec 19 - Reindeer All...

    read article
  • | 3 min read
    #blog #advent-2023

    Wrapped and Ready

    The Elves have everything wrapped up. Literally! Tonight's the big night. It's Time to Deliver! Welcome to Day 24 of the YAMLScript Advent Calendar It's also time to wrap up this year's YAMLScript...

    read article
  • | 4 min read
    #blog #advent-2023

    Perl to Rust

    When Santa is doing his job in the Luxembourg area, I've always wondered how he gets from Perl to Rust. Maybe he takes this route! Welcome to Day 23 of the YAMLScript Advent Blog! A couple of days ago...

    read article
  • | 3 min read
    #blog #advent-2023

    Flip Flops

    Can you imagine Santa walking around in flip flops? I've never been up to the North Pole, but I'm pretty sure there's no beaches. I always pictured Santa wearing moon boots around the...

    read article
View All Posts