Swiftpack.co -  Kitura-Next/Kitura-MustacheTemplateEngine as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
✅ Adapter of GRMustache Template Engine to Kitura Template Engine
.package(url: "https://github.com/Kitura-Next/Kitura-MustacheTemplateEngine.git", from: "IBM-2019")


APIDoc Build Status - Master macOS Linux Apache 2 Slack Status


A templating engine for Kitura that uses Mustache-based templates.

Kitura-MustacheTemplateEngine is a plugin for Kitura Template Engine for using GRMustache with the Kitura server framework. This makes it easy to use Mustache templating, with a Kitura server, to create an HTML page with integrated Swift variables.

Mustache Template File

The template file is basically HTML with gaps where we can insert code and variables. GRMustache is a templating language used to write a template file and Kitura-MustacheTemplateEngine can use any standard Mustache template.

Mustache manual provides documentation and examples on how to write a Mustache template File.

By default the Kitura Router will look in the Views folder for Mustache template files with the extension .mustache.


Add dependencies

Add the Kitura-MustacheTemplateEngine package to the dependencies within your application’s Package.swift file. Substitute "x.x.x" with the latest Kitura-MustacheTemplateEngine release.

.package(url: "https://github.com/Kitura-Next/Kitura-MustacheTemplateEngine.git", from: "x.x.x")

Add KituraMustache to your target's dependencies:

.target(name: "example", dependencies: ["KituraMustache"]),

Import package

import KituraMustache


The following example takes a server generated using kitura init and modifies it to serve Mustache-formatted text from a .mustache file.

The files which will be edited in this example, are as follows:

├── Package.swift
├── Sources
│    └── Application
│         └── Application.swift
└── Views
    └── Example.mustache

The Views folder and Example.mustache file will be created later on in this example, since they are not initialized by kitura init.


Add the dependencies to your Package.swift file (as defined in Add dependencies above).


Inside the Application.swift file, add the following code to render the Example.mustache template file on the "/winner" route:

import KituraMustache

Add the following code inside the postInit() function:

router.add(templateEngine: MustacheTemplateEngine())
router.get("/winner") { _, response, next in
    let  winnings = 10000.0
    let context: [String:Any] =
        ["name" : "Joe Bloggs", "winnings": winnings, "taxed_winnings": winnings * 0.6, "taxable" : true]
    try response.render("Example.mustache", context: context)


Create the Views folder and put the following Mustache template code into a file called Example.mustache:

    Hello {{name}}!
    You have just won {{winnings}} dollars!
        Well, {{taxed_winnings}} dollars, after taxes.

This example is adapted from the Mustache manual code to congratulate the winner of a contest.

Run the application and once the server is running, go to http://localhost:8080/winner to view the rendered Mustache template.

API documentation

For more information visit our API reference.


We love to talk server-side Swift, and Kitura. Join our Slack to meet the team!


This library is licensed under Apache 2.0. Full license text is available in LICENSE.


Stars: 0
Last commit: 38 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

38 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API