balena-temen 0.0.15

Templating engine for (not just) JSON

balena temen

Build Status Current Release License Issues

A templating engine for JSON.

Provides facilities to:

  • evaluate JSON
  • evaluate JSON with custom evaluation keyword, functions and filters
  • evaluate single expression (result is of any type)
  • evaluate single logical expression (result is a boolean)
  • retrieve AST of any expression / identifier


balena-temen crate is one small piece of the configuration project. This project has no public / open specification yet, but we're working on it and it will be public once finished.

Supported platforms

Anyone should be able to use this crate:

  • as a Rust crate
  • as an NPM package (Node.js)
  • in the browser (Web Assembly)

NPM package / browser (Web Assembly) parts are not done yet and are under the construction.



Add as a dependency to your Cargo.toml:

balena-temen = "0.1"

Evaluate simple JSON:

use balena_temen::eval;
use serde_json::json;

let data = json!({
    "wifi": {
        "ssid": "Balena Ltd",
        "id": {
            "$$eval": "super.ssid | slugify"
let evaluated = json!({
    "wifi": {
        "ssid": "Balena Ltd",
        "id": "balena-ltd"

assert_eq!(eval(data).unwrap(), evaluated);


If you're having any problem, please raise an issue on GitHub or contact us, and the team will be happy to help.


balena-temen is free software, and may be redistributed under the terms specified in the license.