The eryn logo
Eryn (stylized as eryn) is a native template engine for Node.js. It was developed by UW during the COVID-19 pandemic.
The engine was built with high performance in mind, such that it can be used for fast server-side rendering. Most of the performance comes from the fact that eryn compiles templates into an intermediary format, OSH.
Being a binary template engine, eryn can be used to render any type of file (html, js, pdf, literally anything), unlike most other engines which only support a handful of formats (html, css, and js). The author states:
"If it can be represented with bytes, eryn can render it. Yes, that includes everything."
Eryn was born from the creator's frustration with other template engines:
"Most pieces of software nowadays try to make the user's life easier by giving them less control. However, it makes life harder for those who need more control. I know what I'm doing, so give me the option to do what I want. This is why I created eryn. It does exactly what it's told to do, while being very fast and very modular. It's easy to use, but can also be configured in many ways. Don't like the syntax? No problem, you can literally replace every token with whatever you want. Of course, eryn also includes descriptive error messages, in case the user mistypes something." -- UW
Eryn is a native Node.js module. This means that it compiles directly to machine code, while also working with any Node application. The engine core is fully native, and uses N-API to communicate with the runtime via a bridge. Most of the work is handled natively, which is why the engine performs exceptionally.
A diagram that shows how Eryn works
The documentation is available on the main repository wiki.
Eryn was supposed to be a very simple template processor. However, UW decided to turn the project into a fully fledged template engine.
The name eryn is a reference to Erin-fray Orgel, which is a character from CHAOS;CHILD. The wiki page states: "She has a violent magic stick called Ochimusha ☆ compiler". Eryn uses an intermediary format called OSH, which is a reference to Erin's violent magic stick: "Ochimusha compiler" -> OSH compiler.