/node-templates

Benchmarking various Node.js template engines

Primary LanguageJavaScript

Node Templates

The goal of this project is to be a source of comparison for the many different templating libraries available for Node.js. By implementing templates in the most similar manner possible, we can get fairly accurate benchmarks between compile and render steps of various template libraries.

Feature Comparisons and Benchmarks

View all feature comparisons and templates on the Node Templates Page.

Implemented Libraries

(Alphabetical Order)

Running

node index.js [options]
node index.js --type 'render' --time 800 --comparisons 4

Options

--type or -t String

The type of test to run. Available types are compile, render or all (no parameter given). Defaults to all.

--time or -m Number

How long, in milliseconds, to run the tests for. Higher numbers can present more accurate results. Defaults 1000.

####--comparisons or -c Number

How many times to run each test. Defaults to 8.

Contributing

If you'd like to contribute another library to this project, that'd be really awesome. Just to be fair, there are a few ground-rules:

  1. After cloning the repository, run make to install all dependencies and commit hooks. Your commits will automatically be required to pass JSLint.
  2. Do not checkout or push to the gh-pages branch. Doing so on Github will create duplicate pages and hurt findability on search engines.
  3. All libraries must be available via the NPM package install.
  4. Add the library and specific version number (no fuzzy versions allowed) to package.json.
  5. Implement the template as closely as possible to all others provided. Shortcuts and optimizations to do the same thing are encouraged, especially if they make the library compile and render steps faster.
  6. Add the new template engine to the features table of index.html.
  7. Do not add new benchmarks to the index.html file. Implementation will be reviewed and a full benchmark run will be done.
  8. If you did all of that, you are really awesome.