Minijinja Versions Save

MiniJinja is a powerful but minimal dependency template engine for Rust compatible with Jinja/Jinja2

2.0.1

2 weeks ago

Release Notes

  • Fixed an issue that caused custom delimiters to not work in the Python binding. #506

Install minijinja-cli 2.0.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/2.0.1/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/2.0.1/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 2.0.1

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

2.0.0

2 weeks ago

Release Notes

This is a major update to MiniJinja that changes a lot of core internals and cleans up some APIs. In particular it resolves somes limitations in the engine in relation to working with dynamic objects, unlocks potentials for future performance improvments and enhancements.

It's very likely that you will need to do changes to your code when upgrading, particular when implementing dynamic objects. In short:

  • StructObject and SeqObject are gone. They have been replaced by improved APIs directly on Object. Please refer to the updated documentation to see how these objects behave now. For the most part code should become quite a bit clearer during the upgrade.
  • ObjectKind has been replaced by ObjectRepr. Rather than holding a reference to a StructObject or SeqObject this now is a simple enum that just indicates how that object serializes, renders and behaves.
  • Object no longer uses fmt::Display for rendering. Instead the new Object::render method is used which has a default implementation.
  • The Object trait has been completely transformed and the new type-erased type DynObject has been added to work with unknown objects. This trait has an improved user experience and more flexibility. It's now possible to implement any non-primitive value type including maps with non string keys which was previously not possible.
  • ValueKind is now non exhaustive and got a log of new value types. This resolves various issues in particular in relationship with iterators. As a result of this functions will no longer accidentally serialize into empty objects for example.
  • Value::from_iterator has been replaced by the new Value::make_iterable, Value::make_object_iterable and Value::make_one_shot_iterator. The direct replacement is Value::make_one_shot_iterator but for most uses it's strongly recommended to use one of the other APIs instead. This results in a much improved user experience as it's possible to iterate over such values more than once.
  • The Syntax type has been replaced by the SyntaxConfig type. It uses a builder pattern to reconfigure the delimiters.

For upgrade instructions read the UPDATING guide.

Other Changes:

  • Added a new Environment::templates method that iterates over loaded templates. #471
  • Reverse iteration and slicing now return iterables instead of real sequences.
  • The engine no longer reports iterable as sequences.
  • The value iterator returned by Value::try_iter now holds a reference to the Value internally via reference counting.
  • DynObject now replaces Arc<Object>.
  • The debug printing of some objects was simplified.
  • Added the iterable test. #475
  • The parser no longer panics when using dotted assignments in unexpected places. #479
  • The CLI now enables unicode support by default.
  • Value::from_serializable is now Value::from_serialize.
  • Ranges are now iterables and no longer sequences and their maximum number of iterations was raised to 100000. #493
  • Value::from is now implemented for Error as public API to create invalid values. Previously this behavior was hidden internally in the serde support. #495
  • UndefinedBehavior::Strict now acts more delayed. This means that now value.key is defined
  • Added support for line statements and comments. #503
  • The CLI now accepts --syntax to reconfigure syntax flags such as delimiters. #504

Install minijinja-cli 2.0.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/2.0.0/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/2.0.0/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 2.0.0

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.21

3 weeks ago

Release Notes

  • Fixed an issue where lstrip_blocks unintentionally also applied to variable expression blocks. #502

Install minijinja-cli 1.0.21

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.21/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.21/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.21

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

2.0.0-alpha.0

1 month ago

Release Notes

This is a major update to MiniJinja that changes a lot of core internals and cleans up some APIs. In particular it resolves somes limitations in the engine in relation to working with dynamic objects, unlocks potentials for future performance improvments and enhancements.

It's very likely that you will need to do changes to your code when upgrading, particular when implementing dynamic objects. In short:

  • StructObject and SeqObject are gone. They have been replaced by improved APIs directly on Object. Please refer to the updated documentation to see how these objects behave now. For the most part code should become quite a bit clearer during the upgrade.
  • ObjectKind has been replaced by ObjectRepr. Rather than holding a reference to a StructObject or SeqObject this now is a simple enum that just indicates how that object serializes, renders and behaves.
  • Object no longer uses fmt::Display for rendering. Instead the new Object::render method is used which has a default implementation.
  • The Object trait has been completely transformed and the new type-erased type DynObject has been added to work with unknown objects. This trait has an improved user experience and more flexibility. It's now possible to implement any non-primitive value type including maps with non string keys which was previously not possible.
  • ValueKind is now non exhaustive and got a log of new value types. This resolves various issues in particular in relationship with iterators. As a result of this functions will no longer accidentally serialize into empty objects for example.
  • Value::from_iterator has been replaced by the new Value::make_iterable, Value::make_object_iterable and Value::make_one_shot_iterator. The direct replacement is Value::make_one_shot_iterator but for most uses it's strongly recommended to use one of the other APIs instead. This results in a much improved user experience as it's possible to iterate over such values more than once.
  • The Syntax type has been replaced by the SyntaxConfig type. It uses a builder pattern to reconfigure the delimiters.

For upgrade instructions read the UPDATING guide.

Other Changes:

  • Added a new Environment::templates method that iterates over loaded templates. #471
  • Reverse iteration and slicing now return iterables instead of real sequences.
  • The engine no longer reports iterable as sequences.
  • The value iterator returned by Value::try_iter now holds a reference to the Value internally via reference counting.
  • DynObject now replaces Arc<Object>.
  • The debug printing of some objects was simplified.
  • Added the iterable test. #475
  • The parser no longer panics when using dotted assignments in unexpected places. #479
  • The CLI now enables unicode support by default.
  • Value::from_serializable is now Value::from_serialize.
  • Ranges are now iterables and no longer sequences and their maximum number of iterations was raised to 100000. #493
  • Value::from is now implemented for Error as public API to create invalid values. Previously this behavior was hidden internally in the serde support. #495

Install minijinja-cli 2.0.0-alpha.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/2.0.0-alpha.0/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/2.0.0-alpha.0/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 2.0.0-alpha.0

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.20

1 month ago

Release Notes

  • Added support for implicit string concatenation for Jinja2 compatibility. #489
  • Added support for sequence concatenation with the plus operator for Jinja2 compatibility. #491

Install minijinja-cli 1.0.20

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.20/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.20/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.20

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.19

1 month ago

Release Notes

  • Deprecated Value::from_iterator and introduced replacement Value::make_one_shot_iterator API which also exists in 2.x. #487

Install minijinja-cli 1.0.19

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.19/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.19/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.19

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.18

1 month ago

Release Notes

  • Fixed an endless loop in undeclared_variables. #486

Install minijinja-cli 1.0.18

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.18/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.18/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.18

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.17

1 month ago

Release Notes

  • Added support for Option<Into<Value>> as return value from functions. #452
  • Deprecated Value::from_serializable for the improved replacement method Value::from_serialize. #482

Install minijinja-cli 1.0.17

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.17/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.17/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.17

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

1.0.16

1 month ago

Release Notes

  • Tolerate underscores in number literals. #443
  • Added support for trim_blocks and lstrip_blocks for Jinja2 compatibility. #447
  • Changed API of unstable_machinery. The tokenize function got an extra argument for the WhitespaceConfig. It's however recommended to use the new Tokenizer struct instead. parse_expr was added, the parse function now takes a SyntaxConfig and WhitespaceConfig. #447

Install minijinja-cli 1.0.16

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/minijinja/releases/download/1.0.16/minijinja-cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/mitsuhiko/minijinja/releases/download/1.0.16/minijinja-cli-installer.ps1 | iex"

Download minijinja-cli 1.0.16

File Platform Checksum
minijinja-cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minijinja-cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
minijinja-cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
minijinja-cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minijinja-cli-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum