Skip to Content
Like this project? Star on Github! ⭐
Introduction

Rimu 🌱

An 800-year-old giant rimu tree stretching high into the canopy at Ōtari-Wilton's Bush in Te Whanganui-a-Tara (Wellington), Aotearoa (New Zealand).

A data structure template language.

release version crates.io version ci status chat

Rimu is a friendly template language for structured data and functional expressions.

Create parametric data using the best of Yaml structures and Lisp functions.

🌿 Features

  • Structured: Structured block and flow data of Yaml 
  • Functional: Functional expressions of Lisp 
  • Educational *: Inspired by Logo  to be accessible to beginner programmers
  • Embeddable: Lightweight embed into web or native apps
  • Debug-friendly *: Clear error messages when something is wrong
  • Secure: Safe with untrusted input

* Work in progress

💡 Use Cases

Rimu enables user-friendly expressive domain-specific languages :

  • Programmatic users: When you want to give users an expressive language for building things, like OpenSCAD .
  • Educational code: When you want to teach beginners how to program, like Logo  or Scratch .
  • Creative code: When you want to give artists and creators a playground for interactive and generative art.
  • Complex configs: When your infrastructure-as-code (Kubernetes , Terraform , NixOps ), declarative package managers (Nix ), or build systems (Bazel ) are complex enough to need functional config generation.
  • Expressive configs: When you want your system’s configuration to be more expressive than static data.

The author Mikey  (as part of Village Kit ) is motivated by the “programmatic user”, which may inform future developments.

🎮 Try Rimu!

Playground: play.rimu.dev 


📌 Stability

The Rimu language is in the experimental phase.

If you want to participate in mad science, please join us! 🧪

For more stable alternatives, see related projects.

💬 Community & Contributions

We believe in learning and growing together.

Join the conversation, share your insights, ask questions, and help evolve Rimu in our Matrix Chat  or GitHub Discussions .

Contributions to the development and documentation of Rimu are always welcome!

Last updated on