PHPackages                             jbboehr/mustache-spec - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. jbboehr/mustache-spec

ActiveLibrary[Templating &amp; Views](/categories/templating)

jbboehr/mustache-spec
=====================

Mustache Specification

v1.1.2(10y ago)11801LGPLv3Nix

Since Jun 5Pushed 2y ago1 watchersCompare

[ Source](https://github.com/jbboehr/mustache-spec)[ Packagist](https://packagist.org/packages/jbboehr/mustache-spec)[ Docs](http://github.com/jbboehr/mustache-spec)[ RSS](/packages/jbboehr-mustache-spec/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (1)

The repository at  is the formal standard for Mustache. It defines both normal usage and edge-case behavior for libraries parsing the Mustache templating language (or a superset thereof).

The specification is developed as a series of YAML files, under the `specs`directory.

Versioning
----------

[](#versioning)

This specification is being [semantically versioned](http://semver.org). Roughly described, major version changes will always represent backwards incompatible changes, minor version changes will always represent new language features and will be backwards compatible, and patch ('tiny') version changes will always be bug fixes. For the purposes of semantic versioning, the public API is the contents of the `specs` directory and the algorithm for testing against it.

Mustache implementations SHOULD report the most recent version of the spec (major and minor version numbers). If an implementation has support for any optional modules, they SHOULD indicate so with a remark attached to the version number (e.g. "vX.Y, including lambdas" or "v.X.Y+λ"). It is RECOMMENDED that implementations not supporting at least v1.0.0 of this spec refer to themselves as "Mustache-like", or "Mustache-inspired".

Alternate Formats
-----------------

[](#alternate-formats)

Since YAML is a reasonably complex format that not every language has good tools for working with, we also provide JSON versions of the specs on a best-effort basis.

These should be identical to the YAML specifications, but if you find the need to regenerate them, they can be trivially rebuilt by invoking `rake build`.

It is also worth noting that some specifications (notably, the lambda module) rely on YAML "tags" to denote special types of data (e.g. source code). Since JSON offers no way to denote this, a special key ("`__tag__`") is injected with the name of the tag as its value. See `TESTING.md` for more information about handling tagged data.

Optional Modules
----------------

[](#optional-modules)

Specification files beginning with a tilde (`~`) describe optional modules. At present, the only module being described as optional is regarding support for lambdas. As a guideline, a module may be a candidate for optionality when:

- It does not affect the core syntax of the language.
- It does not significantly affect the output of rendered templates.
- It concerns implementation language features or data types that are not common to or core in every targeted language.
- The lack of support by an implementation does not diminish the usage of Mustache in the target language.

As an example, the lambda module is primarily concerned with the handling of a particular data type (code). This is a type of data that may be difficult to support in some languages, and users of those languages will not see the lack as an 'inconsistency' between implementations.

Support for specific pragmas or syntax extensions, however, are best managed outside this core specification, as adjunct specifications.

Implementors are strongly encouraged to support any and all modules they are reasonably capable of supporting.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 67.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4000d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ccc4aa01c69052830471c5ba84c4af824796d46d9920dc8574cb6e368281ab79?d=identicon)[jbboehr](/maintainers/jbboehr)

---

Top Contributors

[![pvande](https://avatars.githubusercontent.com/u/2350?v=4)](https://github.com/pvande "pvande (125 commits)")[![jgonggrijp](https://avatars.githubusercontent.com/u/1540185?v=4)](https://github.com/jgonggrijp "jgonggrijp (19 commits)")[![Danappelxx](https://avatars.githubusercontent.com/u/3291251?v=4)](https://github.com/Danappelxx "Danappelxx (13 commits)")[![jbboehr](https://avatars.githubusercontent.com/u/225601?v=4)](https://github.com/jbboehr "jbboehr (6 commits)")[![softmoth](https://avatars.githubusercontent.com/u/774788?v=4)](https://github.com/softmoth "softmoth (4 commits)")[![gasche](https://avatars.githubusercontent.com/u/426238?v=4)](https://github.com/gasche "gasche (4 commits)")[![locks](https://avatars.githubusercontent.com/u/32344?v=4)](https://github.com/locks "locks (2 commits)")[![mrb](https://avatars.githubusercontent.com/u/2878?v=4)](https://github.com/mrb "mrb (2 commits)")[![adam-fowler](https://avatars.githubusercontent.com/u/9382567?v=4)](https://github.com/adam-fowler "adam-fowler (2 commits)")[![s9105947](https://avatars.githubusercontent.com/u/80697868?v=4)](https://github.com/s9105947 "s9105947 (2 commits)")[![cjerdonek](https://avatars.githubusercontent.com/u/355822?v=4)](https://github.com/cjerdonek "cjerdonek (2 commits)")[![davidsantiago](https://avatars.githubusercontent.com/u/151663?v=4)](https://github.com/davidsantiago "davidsantiago (1 commits)")[![bobthecow](https://avatars.githubusercontent.com/u/53660?v=4)](https://github.com/bobthecow "bobthecow (1 commits)")[![kanru](https://avatars.githubusercontent.com/u/17571?v=4)](https://github.com/kanru "kanru (1 commits)")[![andrewthad](https://avatars.githubusercontent.com/u/5332484?v=4)](https://github.com/andrewthad "andrewthad (1 commits)")[![davisp](https://avatars.githubusercontent.com/u/19929?v=4)](https://github.com/davisp "davisp (1 commits)")

---

Tags

mustache

### Embed Badge

![Health badge](/badges/jbboehr-mustache-spec/health.svg)

```
[![Health](https://phpackages.com/badges/jbboehr-mustache-spec/health.svg)](https://phpackages.com/packages/jbboehr-mustache-spec)
```

###  Alternatives

[mustache/mustache

A Mustache implementation in PHP.

3.3k44.6M291](/packages/mustache-mustache)[zordius/lightncandy

An extremely fast PHP implementation of handlebars ( http://handlebarsjs.com/ ) and mustache ( http://mustache.github.io/ ).

60910.5M45](/packages/zordius-lightncandy)[salesforce/handlebars-php

Handlebars processor for php

80713.2k11](/packages/salesforce-handlebars-php)[pattern-lab/styleguidekit-assets-default

The assets for the default StyleguideKit for Pattern Lab. Contains styles and mark-up for Pattern Lab's front-end.

351.4M6](/packages/pattern-lab-styleguidekit-assets-default)[proai/laravel-handlebars

A Laravel wrapper for LightnCandy for using the Handlebars (and Mustache) template engine.

38204.7k](/packages/proai-laravel-handlebars)[voodoophp/handlebars

Handlebars processor for php

34158.9k2](/packages/voodoophp-handlebars)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
