Mustachers
Providing mustache rendering using Rust by wrapping the mustache crate.
At the moment only a simple render function taking a template file and parameters to interpolate. This does not look to replace or compete with the ruby offering, but provides an alternative seemingly offering a performance enhancement.
Installation
Install the gem and add to the application's Gemfile by executing:
$ bundle add mustachers
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install mustachers
Usage
Require the gem if needed. Some might be dynamically loaded.
require 'mustachers'An example of using the gem.
Mustachers::Renderer.render("<h1>{{text}}</h1>", {text: "abc123"})From the console.
bundle exec ruby -r mustachers -e 'puts Mustachers::Renderer.render("<h1>{{text}}</h1>", {text: "abc123"})'
<h1>abc123</h1>Benchmark
The script for this can be found in the benchmarks directory.
bundle exec ruby benchmarks/simple.rb
       user     system      total        real
 236.928979   1.059659 237.988638 (239.572824) # ruby
  13.929279   0.069823  13.999102 ( 14.088116) # rustDevelopment
TODO:
- Check Ruby performance such as any memory leaks and garbage collection.
 - Improve the error handling to raise an appropriate error.
 - Unit tests in rust to provide faster feedback while developing.
 - More options for the template rendering such as reading the file.
 - Benchmarking with different sized inputs.
 
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/samfrench/mustachers.