benchmark script
Library
Time
bbmustache
39122
mustache.erl
673416
Check the reference implementation
⚠️ For libraries other than bbmustache, there is a possibility that there is a miss.
comments
https://github.com/mustache/spec/tree/v1.2.1/specs/comments.yml
bbmustache
mustache.erl
Inline
✅
✅
Multiline
✅
✅
Standalone
✅
Indented Standalone
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Multiline Standalone
✅
Indented Multiline Standalone
✅
Indented Inline
✅
✅
Surrounding Whitespace
✅
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/delimiters.yml
bbmustache
mustache.erl
Pair Behavior
✅
Special Characters
✅
Sections
✅
Inverted Sections
✅
Partial Inheritence
✅
Post-Partial Behavior
✅
Surrounding Whitespace
✅
Outlying Whitespace (Inline)
✅
Standalone Tag
✅
Indented Standalone Tag
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Pair with Padding
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/interpolation.yml
bbmustache
mustache.erl
No Interpolation
✅
✅
Basic Interpolation
✅
✅
HTML Escaping
✅
Triple Mustache
✅
✅
Ampersand
✅
✅
Basic Integer Interpolation
✅
✅
Triple Mustache Integer Interpolation
✅
✅
Ampersand Integer Interpolation
✅
✅
Basic Decimal Interpolation
✅
✅
Triple Mustache Decimal Interpolation
✅
✅
Ampersand Decimal Interpolation
✅
✅
Basic Null Interpolation
✅
Triple Mustache Null Interpolation
✅
Ampersand Null Interpolation
✅
Basic Context Miss Interpolation
✅
✅
Triple Mustache Context Miss Interpolation
✅
✅
Ampersand Context Miss Interpolation
✅
✅
Dotted Names - Basic Interpolation
✅
Dotted Names - Triple Mustache Interpolation
✅
Dotted Names - Ampersand Interpolation
✅
Dotted Names - Arbitrary Depth
✅
Dotted Names - Broken Chains
✅
Dotted Names - Broken Chain Resolution
✅
Dotted Names - Initial Resolution
✅
Dotted Names - Context Precedence
✅
Implicit Iterators - Basic Interpolation
✅
Implicit Iterators - HTML Escaping
✅
Implicit Iterators - Triple Mustache
✅
Implicit Iterators - Ampersand
✅
Implicit Iterators - Basic Integer Interpolation
✅
Interpolation - Surrounding Whitespace
✅
✅
Triple Mustache - Surrounding Whitespace
✅
✅
Ampersand - Surrounding Whitespace
✅
✅
Interpolation - Standalone
✅
✅
Triple Mustache - Standalone
✅
✅
Ampersand - Standalone
✅
✅
Interpolation With Padding
✅
✅
Triple Mustache With Padding
✅
✅
Ampersand With Padding
✅
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/inverted.yml
bbmustache
mustache.erl
Falsey
✅
✅
Truthy
✅
✅
Null is falsey
✅
Context
✅
✅
List
✅
✅
Empty List
✅
✅
Doubled
✅
✅
Nested (Falsey)
✅
Nested (Truthy)
✅
Context Misses
✅
✅
Dotted Names - Truthy
✅
Dotted Names - Falsey
✅
Dotted Names - Broken Chains
✅
Surrounding Whitespace
✅
Internal Whitespace
✅
Indented Inline Sections
✅
Standalone Lines
✅
✅
Standalone Indented Lines
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Padding
✅
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/partials.yml
bbmustache
mustache.erl
Basic Behavior
✅
Failed Lookup
✅
Context
✅
Recursion
✅
Surrounding Whitespace
✅
Inline Indentation
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Standalone Indentation
✅
Padding Whitespace
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/sections.yml
bbmustache
mustache.erl
Truthy
✅
✅
Falsey
✅
✅
Null is falsey
✅
Context
✅
Parent contexts
✅
Variable test
✅
List Contexts
✅
Deeply Nested Contexts
✅
List
✅
Empty List
✅
✅
Doubled
✅
✅
Nested (Truthy)
✅
Nested (Falsey)
✅
Context Misses
✅
✅
Implicit Iterator - String
✅
Implicit Iterator - Integer
✅
Implicit Iterator - Decimal
✅
Implicit Iterator - Array
✅
Dotted Names - Truthy
✅
Dotted Names - Falsey
✅
Dotted Names - Broken Chains
✅
Surrounding Whitespace
✅
Internal Whitespace
✅
Indented Inline Sections
✅
Standalone Lines
✅
✅
Indented Standalone Lines
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Padding
✅
✅
https://github.com/mustache/spec/tree/v1.2.1/specs/~inheritance.yml
bbmustache
mustache.erl
Default
Variable
Triple Mustache
Sections
Negative Sections
Mustache Injection
Inherit
Overridden content
Data does not override block
Data does not override block default
Overridden parent
Two overridden parents
Override parent with newlines
Inherit indentation
Only one override
Parent template
Recursion
Multi-level inheritance
Multi-level inheritance, no sub child
Text inside parent
Text inside parent
https://github.com/mustache/spec/tree/v1.2.1/specs/~lambdas.yml
bbmustache
mustache.erl
Interpolation
Interpolation - Expansion
Interpolation - Alternate Delimiters
Interpolation - Multiple Calls
Escaping
Section
Section - Expansion
Section - Alternate Delimiters
Section - Multiple Calls
Inverted Section
✅
✅