Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time


A simple Mustache parser/evaluator for Swift.

Mustache is a very simple templating language. Implementations are available for pretty much any programming language (check the Mustache website) - this is one for Swift.

In the context of you don't need to call this manually, but you can just use the Mustache template support in the Express module. Checkout the express-simple app as an example on how to do this.

This Mustache implementation comes with a very simple Key-Value coding implementation, which is used to extract values from model objects for rendering. With that you can render both, generic Dictionary/Array structures as well as Swift objects with properties. Since the reflection capabilities of Swift are pretty limited, so is the KVC implementation.


Sample Mustache:

Hello {{name}}
You have just won {{& value}} dollars!
  Well, {{{taxed_value}}} dollars, after taxes.
  Has address in: {{city}}
  Has NO addresses

The template features value access: {{name}}, conditionals: {{#in_ca}}, as well as repetitions: {{#addresses}}.

Sample code to parse and evaluate the template:

let sampleDict  : [ String : Any ] = [
  "name"        : "Chris",
  "value"       : 10000,
  "taxed_value" : Int(10000 - (10000 * 0.4)),
  "in_ca"       : true,
  "addresses"   : [
    [ "city"    : "Cupertino" ]

let parser = MustacheParser()
let tree   = parser.parse(string: template)
let result = tree.render(object: sampleDict)

You get the idea.