PackageTrack
Sign in Get early access

tera

A template engine for Rust based on Jinja2/Django

2.2.0 36M downloads/mo #1500 most downloaded on crates.io Keats/tera

What this package is like to depend on

Last release 3 days ago

20 Aug 2026

Release timing varies

gaps range from 8 days to 3 months

Nearly every release is documented

notes for 76 of 80 stable releases

6 versions withdrawn

withdrawn after publishing

10 years old

126 releases · first in 2016

14 releases in the last 12 months

see the full history below

Release timeline

126 releases · Apr 2016 to Aug 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 126
  1. 2.2.0 20 Aug 2026
    Release notes
    • Do not reserialize existing Value when serializing to a Value
    • Error on content in children templates that would have been ignored
    • Allows blocks inside if/elif/else again like in v1
    • Allows the indentation character of the indent filter to be configured
    • Add chained filter sections
    Open source →
  2. 2.1.1 11 Aug 2026
    Release notes
    • Fix component default value not allowing negative numbers
    • Fix component default value not checking whether default value matches expected type
    Open source →
  3. 2.1.0 23 Jul 2026
    Release notes
    • Add .iter() method to Kwargs
    • Add Tera::contains_component and Tera::get_component_names
    Open source →
  4. 2.0.0 26 Jun 2026
    Release notes

    see migration guide for all the changes.

    Open source →
  5. 2.0.0-alpha.9 20 Jun 2026 pre-release

    Nothing published for this version

  6. 2.0.0-alpha.8 17 Jun 2026 pre-release

    Nothing published for this version

  7. 2.0.0-alpha.7 05 Jun 2026 pre-release

    Nothing published for this version

  8. 2.0.0-alpha.6 20 May 2026 pre-release

    Nothing published for this version

  9. 2.0.0-alpha.5 11 May 2026 pre-release

    Nothing published for this version

  10. 2.0.0-alpha.4 30 Apr 2026 pre-release

    Nothing published for this version

  11. 2.0.0-alpha.3 23 Apr 2026 pre-release

    Nothing published for this version

  12. 2.0.0-alpha.2 03 Mar 2026 pre-release

    Nothing published for this version

  13. 2.0.0-alpha.1 03 Feb 2026 pre-release

    Nothing published for this version

  14. 1.20.1 30 Oct 2025

    Nothing published for this version

  15. 1.20.0 27 May 2024
    Release notes
    • Support parenthesis in if statements
    • Allow escaped newline and tab join separator
    Open source →
  16. 1.19.1 03 Sep 2023
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.63 due to transitive dependencies.
    • Update crates.io metadata for the website
    Open source →
  17. 1.19.0 31 May 2023
    Release notes

    Looks like i forgot to publish..

    Open source →
    Release notes
    • Revert change to glob path to not error if the path doesn't exist
    • Allow macro definition in renderable template
    Open source →
  18. 1.18.1 15 Mar 2023
    Release notes

    Closes #819

    Open source →
    Release notes
    • Fix panic on invalid globs to Tera::new
    Open source →
  19. 1.18.0 08 Mar 2023
    Release notes
    • Add abs filter
    • Add indent filter
    • Deprecate get_json_pointer in favour of dotted_pointer, a faster alternative
    • Always canonicalize glob paths passed to Tera to workaround a globwalk bug
    • Handle apostrophes in title case filter
    • Some performance improvement
    Open source →
  20. 1.17.1 19 Sep 2022
    Release notes
    • Make get_random use isize instead of i32 and bad error message
    • Fix variables lookup when the evaluated key has a . or quotes
    • Fix changed output of f64 from serde_json 1.0.85
    Open source →
  21. 1.17.0 14 Aug 2022
    Release notes
    • Fix bug where operands in in operation were escaped before comparison
    • Force chrono dep to be 0.4.20 minimum
    • Better support for parenthesis in expression
    Open source →
  22. 1.16.0 10 Jun 2022
    Release notes
    • Add a feature just for the urlencode builtin
    • Fix bug in slice filter if start >= end
    • Allow supplying a timezone to a timestamp for the date filter
    Open source →
  23. 1.15.0 03 Nov 2021
    Release notes
    • Add default parameter to get filter
    • Tera::extend now also copies over function
    • Remove the new Context-local Tera function support, it was an accidental breaking change and will be added in v2 in some ways instead
    Open source →
  24. 1.14.0 01 Nov 2021 withdrawn
    Release notes
    • Ensure Context stays valid in Sync+Send, fixing an issue introduced in 1.13. 1.113 will be yanked.
    Open source →
  25. 1.13.0 17 Oct 2021 withdrawn
    Release notes
    • Add default parameter to get filter
    • Tera::extend now also copies over function
    • Add Context-local Tera functions
    Open source →
  26. 1.12.1 13 Jul 2021
    Release notes
    • Remove unused feature of chrono
    • Remove unwanted bloat in crate from accidental WASM files
    Open source →
  27. 1.12.0 29 Jun 2021
    Release notes
    • Add spaceless filter from Django
    Open source →
  28. 1.11.0 14 Jun 2021
    Release notes
    • Allow iterating on strings with for
    Open source →
  29. 1.10.0 21 May 2021
    Release notes
    • Add Tera::get_template_names
    Open source →
  30. 1.9.0 16 May 2021
    Release notes
    • Add Context::remove
    Open source →
  31. 1.8.0 21 Apr 2021
    Release notes
    • Add linebreaksbr filter from Django
    • Allow dots in context object key names
    Open source →
  32. 1.7.1 12 Apr 2021
    Release notes
    • Fix parsing of filter arguments separated by whitespaces
    Open source →
  33. 1.7.0 07 Mar 2021
    Release notes
    • Allow rendering to std::io::Write
    • Follow symlinks in glob
    • Allow including lists of templates
    • Comment tags can now use whitespace control
    Open source →
  34. 1.6.1 29 Dec 2020
    Release notes
    • Fix date filter sometimes panicking with some format input
    Open source →
  35. 1.6.0 19 Dec 2020
    Release notes
    • Allow multiline function kwargs with trailing comma
    • Add Context::try_insert
    Open source →
  36. 1.5.0 10 Aug 2020
    Release notes
    • Add the concept of safe functions and filters
    • Allow negative index on slice filter
    Open source →
  37. 1.4.0 24 Jul 2020
    Release notes
    • Add Context::get and Context::contains_key
    Open source →
  38. 1.3.1 09 Jun 2020
    Release notes
    • Fix raw tag swallowing all whitespace at beginning and end
    • Make batch template sources generic
    • Automatically add function/test/filter function name to their error message
    Open source →
  39. 1.3.0 16 May 2020
    Release notes
    • Add a urlencode_strict filter
    • Add more array literals feature in templates
    • Make filter filter value argument optional
    Open source →
  40. 1.2.0 29 Mar 2020
    Release notes
    • Add trim_start, trim_end, trim_start_matches and trim_end_matches filters
    • Allow blocks in filter sections
    Open source →
  41. 1.1.0 08 Mar 2020
    Release notes
    • Add Tera::render_str, like Tera::one_off but can use an existing Tera instance
    Open source →
  42. 1.0.2 13 Jan 2020
    Release notes
    • 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 should have been fixed before 1.0 but got forgotten and was considered a bug.
    Open source →
  43. 1.0.1 18 Dec 2019
    Release notes
    • Fix filter sections not keeping whitespaces
    • The filesizeformat filter now takes a usize instead of a i64: no changes to behaviour
    Open source →
  44. 1.0.0 07 Dec 2019
    Release notes

    Breaking changes

    • Now requires Rust 1.34
    • Removed error-chain errors and added rich Error enum instead
    • Filter, Tester and Function are now traits and now take borrowed values instead of owned
    • Updated for 2018 edition
    • Require macros import to be at the top of the files along with extends as it is fairly cheap and the code already only really look there.
    • Enforce spacing in tags at the parser, before ifsomething was considered ok
    • Pluralize filter now uses singular and plural arguments instead of suffix
    • Add a test for checking whether a variable is an object
    • Escaping now happens before inserting the final result of an expression: no need anymore to add | safe everywhere, only at the last position
    • Remove safe argument of the urlencode filter, / is still escaped by default
    • The compile_templates! macro has been removed

    Others

    • Tests can now use value is not defined order for negation (https://github.com/Keats/tera/issues/308)
    • Add nth filter to get the nth value in an array
    • You can now use glob patterns in Tera::new
    • default filter now works on Null values
    • Literal numbers in template overflowing i64/f64 will now be an error instead of panicking
    • Allow arrays as test arguments
    • Add the in operator to check if a left operand is contained in a right one. Also supports negation as not in
    • Add Context::from_value to instantiate a Context from a serde_json Value
    • Add Context::from_serialize to instantiate a Context from something that impl Serialize
    • Make tests helper fns number_args_allowed, value_defined and extract_string public
    • Add else clause to for loops
    • Filters are now evaluated when checking if/elif conditions
    • Allow {{- and -}} for whitespace management
    • Add xml_escape filter
    • Grave accent is no longer escaped in HTML, it is not really needed anymore
    • Add a builtins default feature that gate all filters/functions requiring additional dependencies
    • Add unique and map filter
    • Add a timezone attribute to the date filter
    • Add a get_random function to get a random number in a range
    • Add a get_env function to get the value of an environment variable
    Open source →
  45. 1.0.0-beta.21 01 Dec 2019 pre-release

    Nothing published for this version

  46. 1.0.0-beta.20 26 Nov 2019 pre-release

    Nothing published for this version

  47. 1.0.0-beta.19 30 Oct 2019 pre-release

    Nothing published for this version

  48. 1.0.0-beta.18 20 Oct 2019 pre-release

    Nothing published for this version

  49. 1.0.0-beta.17 17 Oct 2019 pre-release

    Nothing published for this version

  50. 1.0.0-beta.16 25 Sep 2019 pre-release

    Nothing published for this version

  51. 1.0.0-beta.15 16 Sep 2019 pre-release

    Nothing published for this version

  52. 1.0.0-beta.14 15 Aug 2019 pre-release

    Nothing published for this version

  53. 1.0.0-beta.13 15 Jul 2019 pre-release

    Nothing published for this version

  54. 1.0.0-beta.12 12 Jul 2019 pre-release

    Nothing published for this version

  55. 1.0.0-beta.11 06 Jul 2019 pre-release

    Nothing published for this version

  56. 1.0.0-beta.10 16 Jun 2019 pre-release

    Nothing published for this version

  57. 1.0.0-beta.9 10 Jun 2019 pre-release

    Nothing published for this version

  58. 1.0.0-beta.8 01 Jun 2019 pre-release

    Nothing published for this version

  59. 1.0.0-beta.7 29 May 2019 pre-release

    Nothing published for this version

  60. 1.0.0-beta.6 20 May 2019 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive