NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1306 most downloaded on crates.io
Code generator of Askama templating engine
Last release 1 months ago
04 Sep 2026
Release timing varies
gaps range from 8 days to 1.2 years
Rarely documented
notes for 10 of 47 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
48 releases · first in 2017
docs: explain how to install by enabling feature specific for each framework by @pinage404 in #742
let/set block type by @GuillaumeGomez in #760Full Changelog: v0.16.0...v0.16.1
One column per quarter.
This new release increases compatibility with jinja language, add support for more rust expressions in the templates. Take a look at the book for the
This new release increases compatibility with jinja language, add support for more rust expressions in the templates. Take a look at the book for the migration guide.
(❗ = breaking change)
❗Add support for let blocks by @GuillaumeGomez in #697
Implement compound assignments (e.g. {% mut a += 1 %}) by @Kijewski in #685
Add support for tuple, array and slice in type generics by @GuillaumeGomez in #721
Add support for macro args type annotations by @GuillaumeGomez in #722
Add support for caller() in variable declaration by @GuillaumeGomez in #724
Add glob support for dirs in config file by @GuillaumeGomez in #731
size_hint is collected by @Kijewski in #700dyn instead of plain generic bounds by @GuillaumeGomez in #726std::path::absolute to avoid symlinking template paths by @kaepr in #720config by @GuillaumeGomez in #732Template trait methods can return Err by @GuillaumeGomez in #730Ty generics by @GuillaumeGomez in #723complex-expression benchmark by @Kijewski in #691Cargo.toml files by @GuillaumeGomez in #696rand+rand_xoshiro dev-dependencies by @Kijewski in #701trybuild version to 1.0.116 to enforce diagnostics width by @GuillaumeGomez in #718Full Changelog: v0.15.4...v0.16.0
Correctly handle non-ident item in block error by @GuillaumeGomez in #717
.clone() by @jplatte in #716SyntaxAndCache by @jplatte in #714winnow to 1.0 by @jplatte in #715Full Changelog: v0.15.5...v0.15.6
parser: reject non-ASCII characters in byte literals by @Kijewski in #694
Full Changelog: v0.15.4...v0.15.5
Improve function call handling by @Kijewski in #684
Full Changelog: v0.15.3...v0.15.4
Update book links (askama.rs) by @Kijewski in #678
Full Changelog: v0.15.2...v0.15.3
Correctly handle local variables in extends blocks by @GuillaumeGomez in #670
extends blocks by @GuillaumeGomez in #670#[filter_fn] by @Kijewski in #655salvo by @Kijewski in #659Upgrading to new versions chapter in the askama book by @GuillaumeGomez in #665extends by @GuillaumeGomez in #666where bounds in #[filter_fn] by @Kijewski in #672filters chapter by @Tirka in #673filters chapter examples (by making us of defined_or filter) by @Tirka in #675Full Changelog: v0.15.1...v0.15.2
Fix broken intra-doc links by @GuillaumeGomez in #645
call_site for code generated by the derive proc-macro by @sehnryr in #647Full Changelog: v0.15.0...v0.15.1
The main breaking change is about custom filters, they now require the filter_fn attribute. More information about it in the askama book .
The main breaking change is about custom filters, they now require the filter_fn attribute. More information about it in the askama book.
(❗ = breaking change)
reject filter❗ by @GuillaumeGomez in #430|default, |assigned_or and |defined_or❗ by @Kijewski in #425askama::filter_fn proc-macro for custom filters with named/optional arg support❗ by @seijikun in #545enum variants by @Kijewski in #255[<element_expr>; <cnt_expr>] by @seijikun in #626Improve error location to give better errors:
TokenStream rather than a String by @GuillaumeGomez in #558LocatingSlice<&str> instead of &str by @Kijewski in #560Parser::[with_]span() to get byte range and use byte range for proc_macro::Span by @Kijewski in #571filesizeformat with proper accuracy❗ by @seijikun in #568linebreaks, paragraphbreaks and linebreaksbr only need core by @Kijewski in #486ref documentation by @sinder38 in #456performance.md by @zamazan4ik in #188mdbook version and highlight jinja blocks by @Kijewski in #544{# comment #} parsing by @Kijewski in #488Expr::Attr into Expr::AssociatedItem by @GuillaumeGomez in #499Expr variants by @Kijewski in #498|filter and {% filter %} parsing by @Kijewski in #500if-let-chains by @Kijewski in #527if-let by @Kijewski in #532#[inline] annotations by @Kijewski in #421indent Filter Implementation by @strickczq in #466wordcount filter work with core only by @GuillaumeGomez in #480Expr::Call handling for {{ expressions }} and remove parentheses by @Kijewski in #540Expr/Node with Box<Expr>/Box<Node> by @Kijewski in #542punction() finding by @Kijewski in #543loop.first is known by being at index == 0 by @Kijewski in #436impl FastWritable for Cow by @C0D3-M4513R in #432unicode-ident to determine what is an identifier by @Kijewski in #443__askama by @Kijewski in #444crate to be used as identifier by @GuillaumeGomez in #450LoopItem::index to LoopItem::index0 by @Kijewski in #481U+10FFFF is the highest Unicode codepoint by @Kijewski in #484{% raw %} and Lit::parse() without skip_till by @Kijewski in #489{% raw %} for delimiters starting with - by @Kijewski in #491suffix# by @Kijewski in #496check_expr() recursion by @Kijewski in #519EvaluatedResult know its unknown result by @Kijewski in #538r#self is not a valid raw identifier in macro calls by @Kijewski in #553:: by @GuillaumeGomez in #569lib.rs by @Kijewski in #573r#_ is not a valid identifier by @Kijewski in #579block calls are done by @GuillaumeGomez in #580safe filter in template_syntax.md by @FalkWoldmann in #587syn stack overflow by @GuillaumeGomez in #611Full Changelog: v0.14.0...v0.15.0
Implement Values on tuple by @GuillaumeGomez in #391
Values on tuple by @GuillaumeGomez in #391first and blank arguments for |indent by @Kijewski in #401unique filter by @GuillaumeGomez in #405askama_derive accidentally exposed as a feature by @Kijewski in #384CARGO_MANIFEST_DIR part of ConfigKey by @strickczq in #395unique filter implementation by @GuillaumeGomez in #417|titlecase as alias for |title by @Kijewski in #416FastWritable by @Kijewski in #407FastWritable into askama root by @GuillaumeGomez in #411Full Changelog: v0.13.0...v0.14.0
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
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
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 →