Installation
Triplate ships as one package per language. Pick the one for your stack — they implement the same language and produce byte-identical output, verified by a shared conformance suite, so a template authored against one runs unchanged against the others. Every package has zero required runtime dependencies.
Published to npm as triplate.
Ships as ES modules with bundled TypeScript types (plain JavaScript works
too); requires Node 18+ (or any modern bundler / runtime with ESM).
npm install triplateimport { compile, render } from 'triplate';
const tmpl = compile('---\nparams { c: iri }\n---\n?s a ${c}');tmpl.render({ c: 'http://example.org/Person' });// → "?s a <http://example.org/Person>"Published to PyPI as triplate;
requires Python 3.10+. The core is dependency-free. Install the optional
rdflib extra only if you want to pass rdflib terms to the term type:
pip install triplate # core, no dependenciespip install "triplate[rdflib]" # adds rdflib for the term typefrom triplate import compile, render
tmpl = compile("---\nparams { c: iri }\n---\n?s a ${c}")tmpl.render(c="http://example.org/Person")# → "?s a <http://example.org/Person>"Published to Maven Central under dev.triplate; requires Java 17+ (the
library uses records and sealed types). No runtime dependencies.
<dependency> <groupId>dev.triplate</groupId> <artifactId>triplate</artifactId> <version>0.3.0</version></dependency>import dev.triplate.Triplate;import java.util.Map;
String sparql = Triplate.render("---\nparams { c: iri }\n---\n?s a ${c}", Map.of("c", "http://example.org/Person"));// → "?s a <http://example.org/Person>"Next steps
Section titled “Next steps”- Browse the examples for Query, Data and Publishing — real-world, use-case-based recipes covering every syntax element.
- See the per-language API reference for the full
compile/rendersurface, accepted value types, custom types and errors.