NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1558 most downloaded on crates.io
A template engine for Rust based on Jinja2/Django
Last release 27 days ago
11 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
6 versions withdrawn
withdrawn after publishing
11 years old
128 releases · first in 2016
Fix some Value::deserialize issues
Fix some Value::deserialize issues
Tera::render_component_with_implicits and Tera::render_component_with_implicits_to to render a component with implicit parameters as a separate context.unique filter treating distinct maps as the sameAdd State::{escape,autoescaping_enabled,escape_if_needed}
State::{escape,autoescaping_enabled,escape_if_needed}StringInput to use for input/parameters that is safety aware and use it for built-in filters: this
means you should need less | safe and that string safety is passed around correctly. Safety is dropped by
filters where the changes depend on the content itself (truncate can cut anywhere) and preserved when they specify exactly what changes (trim, replace).escape filter that is safety aware (it will not escape an already safe string) and uses the current instance
escape function.txt included in a .html will now be autoescaped if Tera autoescapes on .html.One column per quarter.
Do not reserialize existing Value when serializing to a Value
indent filter to be configuredFix component default value not allowing negative numbers
Add Tera::contains_component and Tera::get_component_names
Tera::contains_component and Tera::get_component_namessee migration guide for all the changes.
see migration guide for all the changes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Support parenthesis in if statements
Minimum supported Rust version (MSRV) is now 1.63 due to transitive dependencies.
Looks like i forgot to publish..
Looks like i forgot to publish..
Closes #819
Deprecate get_json_pointer in favour of dotted_pointer, a faster alternative
abs filterindent filterget_json_pointer in favour of dotted_pointer, a faster alternativeMake get_random use isize instead of i32 and bad error message
get_random use isize instead of i32 and bad error message. or quotesFix bug where operands in in operation were escaped before comparison
in operation were escaped before comparisonAdd a feature just for the urlencode builtin
Remove the new Context-local Tera function support, it was an accidental breaking change and will be added in v2 in some ways instead
default parameter to get filterTera::extend now also copies over functionEnsure Context stays valid in Sync+Send, fixing an issue introduced in 1.13. 1.113 will be yanked.
Context stays valid in Sync+Send, fixing an issue introduced in 1.13. 1.113 will be yanked.Add default parameter to get filter
default parameter to get filterTera::extend now also copies over functionRemove unused feature of chrono
Add spaceless filter from Django
spaceless filter from DjangoAllow iterating on strings with for
for- Add Tera::get_template_names
Tera::get_template_names- Add Context::remove
Context::removeAdd linebreaksbr filter from Django
linebreaksbr filter from DjangoFix parsing of filter arguments separated by whitespaces
Allow including lists of templates
std::io::WriteFix date filter sometimes panicking with some format input
Allow multiline function kwargs with trailing comma
Context::try_insertAdd the concept of safe functions and filters
slice filterAdd Context::get and Context::contains_key
Context::get and Context::contains_keyFix raw tag swallowing all whitespace at beginning and end
raw tag swallowing all whitespace at beginning and endAdd more array literals feature in templates
urlencode_strict filterfilter filter value argument optionalAdd trim_start, trim_end, trim_start_matches and trim_end_matches filters
trim_start, trim_end, trim_start_matches and trim_end_matches filtersAdd Tera::render_str, like Tera::one_off but can use an existing Tera instance
Length filter now errors for things other than array, objects and strings. The fact that it was returning 0 before for other types was something that
Fix filter sections not keeping whitespaces
Removed error-chain errors and added rich Error enum instead
extends as it is fairly cheap and
the code already only really look there.ifsomething was considered oksingular and plural arguments instead of suffix| safe everywhere,
only at the last positionsafe argument of the urlencode filter, / is still escaped by defaultcompile_templates! macro has been removedvalue is not defined order for negation (https://github.com/Keats/tera/issues/308)nth filter to get the nth value in an arrayTera::newdefault filter now works on Null valuesin operator to check if a left operand is contained in a right one. Also supports negation as not inContext::from_value to instantiate a Context from a serde_json ValueContext::from_serialize to instantiate a Context from something that impl Serializenumber_args_allowed, value_defined and extract_string publicelse clause to for loops{{- and -}} for whitespace managementxml_escape filterbuiltins default feature that gate all filters/functions requiring additional dependenciesunique and map filtertimezone attribute to the date filterget_random function to get a random number in a rangeget_env function to get the value of an environment variableNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →