Eta
Lightweight, powerful, pluggable embedded JS template engine.
Written in TypeScript – for use in Node, Deno, or the browser
A faster, more lightweight, and more configurable EJS alternative
Eta vs. EJS:
- Eta's more lightweight, weighing in at only 2.4KB gzipped
- Eta supports Deno, out-of-the-box
- Eta's much faster at compiling and rendering than EJS. Check out these benchmarks
- Eta supports layouts out of the box (learn more)
- Eta allows left whitespace control (with
-
), something that doesn't work in EJS because EJS uses-
on the left side to indicate that the value shouldn't be escaped. Instead, Eta uses~
to output a raw value - Eta gives you more flexibility with delimeters -- you could set them to
{{
and}}
, for example, while with EJS this isn't possible - Eta adds plugin support
- Comments in Eta use
/* ... */
which allows multiline commenting and is more consistent - Eta doesn't break with delimiters inside strings and comments. Example:
<%= "%>" %>
works in Eta, while it breaks in EJS - Eta exposes Typescript types and distributes a UMD build
- Eta allows custom tag-type prefixes. Example: you could change
<%=
to<%*
- Eta throws more informative errors. If you accidentally leave a tag, string, or multiline comment unclosed, Eta will tell you where the problem is
- Example 1
- Example 2
- Example 3
- Partials
- Layouts
Users:<ul><% it.users.forEach(function(user){ %><li><%= user %></li><% }) %></ul>
Unbeatable Performance
Benchmarks demonstrate just how fast Eta is. Think fast, then multiply by crazy speedy, and you have an idea of Eta's performance.
Simply JavaScript
Eta's template syntax (inspired by EJS) means you write templates with just JavaScript -- you don't have to learn an entirely new template syntax.
Powerful and Lightweight
Eta was designed by the team who created Squirrelly, as an alternative to EJS. Though it has almost-compatible syntax to EJS, it's more configurable and has a minzipped bundle cost of only ~2KB!
Configurable and pluggable
Eta supports plugins, custom delimiters, caching, and so much more!