Layers, extractors and template engine wrappers for axum based Web MVC applications

Overview

axum-template

Layers, extractors and template engine wrappers for axum based Web MVC applications

Getting started

Cargo.toml

[dependencies]
axum-template = "0.3"

The engine module contains detailed usage examples for each of the supported template engines.

If you plan using an unsupported engine, check the TemplateEngine docs

Available features

Useful links

License

Licensed under the MIT license. See LICENSE for more information

Comments
  • Tracking issue for axum 0.6.X migration

    Tracking issue for axum 0.6.X migration

    I'm sure you're already aware but either way may be useful to have a tracking issue for this.

    Changelog including breaking changes available here.

    Thank you for this crate!

    opened by blaenk 2
  • build(deps): update minijinja requirement from 0.26.0 to 0.27.0

    build(deps): update minijinja requirement from 0.26.0 to 0.27.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.27.0

    • Filters, tests and other functions can now be registered with a dynamically allocated name. (#146)
    • Added State::current_call which exposes the name of the currently called item. (#150)
    • Introduced revamped object model with SeqObject and StructObject. (#148)
    • Object now directly exposes downcast_ref and is.
    • Removed Value::as_slice
    • Introduced Value::as_seq and Value::as_struct.
    • Introduced Value::from_seq_object and Value::from_struct_object.
    • Added the ability for function arguments to be of type &dyn SeqObject.
    • Renamed Iter to ValueIter.
    • Added Environment::render_named_str. (#149)
    • Exposed string interning via the intern function.
    • Improved support for structs in built-in filters.
    • Added indent filter. (#151)
    • Added the map, select / selectattr and reject / rejectattr filters.
    • Added safe / escaped test.
    • Strings now have the same iteration behavior as in Jinja2. (#152)

    Breaking Changes

    • The Object model changed signficantly in this release. It's now possible for objects to have different shapes (structs or sequences today). As a result SeqObject and StructObject were added to the API. For changing your objects over have a look at the new documentation for Object.
    • The Iter type is now called ValueIter.

    0.26.0

    • Changed Object::attributes to being an iterator. (#138)
    • Arc<T: Object> now implements Object. (#139)
    • Aligned semantics of top-level template code after extends with Jinja2. (#140)
    • Exposed value creation from Arcs. (#141)
    • Performance improvements for value conversions and object creation. (#142)
    • Align iteration behavior of dynamic objects with maps.

    Breaking Changes

    • The attributes method on objects now returns iterators. To make the transition easy change [..] to Box::new([..].into_iter()).

    0.25.0

    • Added support for recursive macro invocations. (#133)
    • Added optional unicode identifier support. (#134)

    0.24.0

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update speculoos requirement from 0.10.0 to 0.11.0

    build(deps): update speculoos requirement from 0.10.0 to 0.11.0

    Updates the requirements on speculoos to permit the latest version.

    Commits
    • 06b3432 chore: bump version to 0.11.0
    • 520c393 feat: add 'is_not_empty' assertion for HashMap and HashSet
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update rstest requirement from 0.15.0 to 0.16.0

    build(deps): update rstest requirement from 0.15.0 to 0.16.0

    Updates the requirements on rstest to permit the latest version.

    Release notes

    Sourced from rstest's releases.

    0.16.0

    Use values expression to define test names.

    Changelog

    Sourced from rstest's changelog.

    [0.16.0] 2022/11/27

    Changed

    • Show TEST START banner only when trace some argument: See #158 for details.
    • Add values to test name: See #160 for details.

    Fixed

    • Updated test fixtures to 1.64.0 compiler's error messages.

    [0.15.0] 2022/06/27

    Fixed

    • Timeout not compile if one of its test arguments il not a copy type [see #154]

    [0.14.0] 2022/06/19

    Changed

    • Feature gated async timeout via async-timeout feature [see #148]

    Fixed

    • Removed async-std build dependency [see #148]

    [0.13.0] 2022/05/15

    Add

    • #[timeout(duration)] test implementation for both sync and async tests (See #136)

    Changed

    • Split rstest in separated crates for macro and libs (See #32)

    [0.12.0] 2021/12/12

    Add

    • Add #[once] fixture attribute to create static fixtures (See #119)

    Fixed

    • Fixed check of available features before to enable macro diagnostic (See #126)

    [0.11.0] 2021/08/01

    Fixed

    • use mutable fixture in in cases and value list (See #121)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.25.0 to 0.26.0

    build(deps): update minijinja requirement from 0.25.0 to 0.26.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.26.0

    • Changed Object::attributes to being an iterator. (#138)
    • Arc<T: Object> now implements Object. (#139)
    • Aligned semantics of top-level template code after extends with Jinja2. (#140)
    • Exposed value creation from Arcs. (#141)
    • Performance improvements for value conversions and object creation. (#142)
    • Align iteration behavior of dynamic objects with maps.

    Breaking Changes

    • The attributes method on objects now returns iterators. To make the transition easy change [..] to Box::new([..].into_iter()).

    0.25.0

    • Added support for recursive macro invocations. (#133)
    • Added optional unicode identifier support. (#134)

    0.24.0

    • Catch divisions by zero.
    • Correctly render inf floats.
    • Enforce a maximum recursion depth during parsing.
    • Added Value::try_iter to iterate over maps and sequences. (#132)

    0.23.0

    • Added Value::from_function. (#121)
    • Fixed incorrect location information with blocks.
    • Fixed broken nested super() calls.
    • Improve error reporting for failures in blocks and trying to super() when there is no parent block.
    • Performance improvements.
    • Added support for {% import %} / {% from .. import .. %} and {% macro %}. (#123)
    • Added Value::is_kwargs which disambiugates if an object passed to a function or filter is a normal object or if it represents keyword arguments.
    • Added the ability to call functions stored on objects.
    • Added macros and multi-template features to disable some of the heavier pieces of MiniJinja.
    • Fixed an issue that caused trailing commas not to work in lists.

    0.22.1

    • Fixed an incorrect manifest for minijinja-autoreload.

    0.22.0

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.24.0 to 0.25.0

    build(deps): update minijinja requirement from 0.24.0 to 0.25.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.25.0

    • Added support for recursive macro invocations. (#133)
    • Added optional unicode identifier support. (#134)

    0.24.0

    • Catch divisions by zero.
    • Correctly render inf floats.
    • Enforce a maximum recursion depth during parsing.
    • Added Value::try_iter to iterate over maps and sequences. (#132)

    0.23.0

    • Added Value::from_function. (#121)
    • Fixed incorrect location information with blocks.
    • Fixed broken nested super() calls.
    • Improve error reporting for failures in blocks and trying to super() when there is no parent block.
    • Performance improvements.
    • Added support for {% import %} / {% from .. import .. %} and {% macro %}. (#123)
    • Added Value::is_kwargs which disambiugates if an object passed to a function or filter is a normal object or if it represents keyword arguments.
    • Added the ability to call functions stored on objects.
    • Added macros and multi-template features to disable some of the heavier pieces of MiniJinja.
    • Fixed an issue that caused trailing commas not to work in lists.

    0.22.1

    • Fixed an incorrect manifest for minijinja-autoreload.

    0.22.0

    • Add defined and undefined tests to always be included.
    • Removed Source::load_from_path.
    • Added Source::from_path.

    Breaking Changes

    • Removed Source::load_from_path. Use Source::with_loader instead.

    0.21.0

    • Added custom autoescape settings.
    • Added custom formatters.
    • Restructured engine internals for greater clarity.
    • Added support for rendering to io::Write. (#111)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update speculoos requirement from 0.9.0 to 0.10.0

    build(deps): update speculoos requirement from 0.9.0 to 0.10.0

    Updates the requirements on speculoos to permit the latest version.

    Commits
    • b57da13 chore: bump manifest
    • bcbb591 chore: snake case for test function
    • cc64f77 8: Return reference to self from matches func to enable chaining
    • dafa0b7 Add in is_empty and has_length checks for HashSet
    • afb00d1 fix: fix rustc-serialize CVE
    • See full diff in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.23.0 to 0.24.0

    build(deps): update minijinja requirement from 0.23.0 to 0.24.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.24.0

    • Catch divisions by zero.
    • Correctly render inf floats.
    • Enforce a maximum recursion depth during parsing.
    • Added Value::try_iter to iterate over maps and sequences. (#132)

    0.23.0

    • Added Value::from_function. (#121)
    • Fixed incorrect location information with blocks.
    • Fixed broken nested super() calls.
    • Improve error reporting for failures in blocks and trying to super() when there is no parent block.
    • Performance improvements.
    • Added support for {% import %} / {% from .. import .. %} and {% macro %}. (#123)
    • Added Value::is_kwargs which disambiugates if an object passed to a function or filter is a normal object or if it represents keyword arguments.
    • Added the ability to call functions stored on objects.
    • Added macros and multi-template features to disable some of the heavier pieces of MiniJinja.
    • Fixed an issue that caused trailing commas not to work in lists.

    0.22.1

    • Fixed an incorrect manifest for minijinja-autoreload.

    0.22.0

    • Add defined and undefined tests to always be included.
    • Removed Source::load_from_path.
    • Added Source::from_path.

    Breaking Changes

    • Removed Source::load_from_path. Use Source::with_loader instead.

    0.21.0

    • Added custom autoescape settings.
    • Added custom formatters.
    • Restructured engine internals for greater clarity.
    • Added support for rendering to io::Write. (#111)
    • Make it impossible to implement Fitler, Test or Function from outside the crate by sealed the traits. (#113)
    • Added support for remaining arguments with Rest. (#114)
    • Filters, tests and functions can now borrow arguments. (#115)
    • Added Value::as_slice and Value::get_get_item_by_index.

    ... (truncated)

    Commits
    • 3018270 0.24.0
    • cdf7774 Added changelog entry
    • 34870b6 Better documentation and iteration interface for value (#132)
    • 491ce5e Add link to Actix Web integration example (#130)
    • eb96fb9 Made changelog more readable
    • 1c51f40 Catch step size of zero in slice
    • 16156fd Detect slices by zero
    • 6911498 Use checked_sub in get_item
    • 4b1d5b3 Protect against overflow with pow
    • f8a282c Added cycle detection for extends and lower recursion limit for includes
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.22.1 to 0.23.0

    build(deps): update minijinja requirement from 0.22.1 to 0.23.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.23.0

    • Added Value::from_function. (#121)
    • Fixed incorrect location information with blocks.
    • Fixed broken nested super() calls.
    • Improve error reporting for failures in blocks and trying to super() when there is no parent block.
    • Performance improvements.
    • Added support for {% import %} / {% from .. import .. %} and {% macro %}. (#123)
    • Added Value::is_kwargs which disambiugates if an object passed to a function or filter is a normal object or if it represents keyword arguments.
    • Added the ability to call functions stored on objects.
    • Added macros and multi-template features to disable some of the heavier pieces of MiniJinja.
    • Fixed an issue that caused trailing commas not to work in lists.

    0.22.1

    • Fixed an incorrect manifest for minijinja-autoreload.

    0.22.0

    • Add defined and undefined tests to always be included.
    • Removed Source::load_from_path.
    • Added Source::from_path.

    Breaking Changes

    • Removed Source::load_from_path. Use Source::with_loader instead.

    0.21.0

    • Added custom autoescape settings.
    • Added custom formatters.
    • Restructured engine internals for greater clarity.
    • Added support for rendering to io::Write. (#111)
    • Make it impossible to implement Fitler, Test or Function from outside the crate by sealed the traits. (#113)
    • Added support for remaining arguments with Rest. (#114)
    • Filters, tests and functions can now borrow arguments. (#115)
    • Added Value::as_slice and Value::get_get_item_by_index.
    • Added support for span error reporting. (#118)
    • Greatly improved handling of nested errors. (#119)
    • ImpossibleOperation is now InvalidOperation.
    • Added support for slice syntax. (#120)

    Breaking Changes

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.20.0 to 0.22.1

    build(deps): update minijinja requirement from 0.20.0 to 0.22.1

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    Changelog

    All notable changes to MiniJinja are documented here.

    0.22.0

    • Add defined and undefined tests to always be included.
    • Removed Source::load_from_path.
    • Added Source::from_path.

    Breaking Changes

    • Removed Source::load_from_path. Use Source::with_loader instead.

    0.21.0

    • Added custom autoescape settings.
    • Added custom formatters.
    • Restructured engine internals for greater clarity.
    • Added support for rendering to io::Write. (#111)
    • Make it impossible to implement Fitler, Test or Function from outside the crate by sealed the traits. (#113)
    • Added support for remaining arguments with Rest. (#114)
    • Filters, tests and functions can now borrow arguments. (#115)
    • Added Value::as_slice and Value::get_get_item_by_index.
    • Added support for span error reporting. (#118)
    • Greatly improved handling of nested errors. (#119)
    • ImpossibleOperation is now InvalidOperation.
    • Added support for slice syntax. (#120)

    Breaking Changes

    • Filter, Test and Function are now sealed traits.
    • ErrorKind::ImpossibleOperation is now ErrorKind::InvalidOperation.
    • Moved up MSRV to 1.61.0 due to bugs on older rust versions related to HRTBs.

    0.20.0

    • Remove internal refcounts from environment.
    • Changed Object and FunctionArgs interface to take arguments by reference. (#101)
    • sync mode is now always enabled. (#104)
    • Removed meta API. (#105)
    • Error no longer implements PartialEq.
    • Simplified the function interface. Filters, tests and global functions can now directly return values instead of results. (#107)
    • MiniJinja no longer silently iterates over non iterable values.

    Breaking Changes

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update minijinja requirement from 0.18.0 to 0.20.0

    build(deps): update minijinja requirement from 0.18.0 to 0.20.0

    Updates the requirements on minijinja to permit the latest version.

    Changelog

    Sourced from minijinja's changelog.

    0.19.1

    • Fixed binary subtraction operator requiring a space. (#94)
    • Fixed trailing commas not working in functino calls. (#95)

    0.19.0

    • Small internal improvements to context creation. (#79)
    • Add support for JSON/YAML/JavaScript Escaping. (#82)
    • Add missing escape support for single quotes ('). (#81)
    • Added support for newlines in string literals. (#85)
    • Added support for block assignment syntax. (#86)
    • Added string concatenatino with + for Jinja compat. (#87)
    • Enable debug mode by default in debug builds. (#88)
    • Added render! macro and render_str. (#89)
    • Fixed an issue where trailing whitespace removal did not work on blocks. (#90)
    • Added loop.changed() method. (#91)

    0.18.1

    • Fixed a bad dependency declaration.

    0.18.0

    • Improved debug printing of context.
    • Added -, _ and . to set of unescaped characters in urlencode. (#72)
    • Bumped v_htmlescape dependency. (#74)

    0.17.0

    • Added support for {% raw %}. (#67)
    • Minimum Rust version moved up to 1.45.
    • Added support for {% set %}. (#70)

    0.16.0

    • Added support for unpacking in with blocks. (#65)

    0.15.0

    • Bumped minimum version requirement to 1.43.
    • Internal refactorings.
    • Added support for fully dynamic loading via Source::with_loader.
    • Renamed get_source to source.

    0.14.1

    • Fixed or expressions not working properly.

    0.14.0

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v0.11.0)
  • v0.11.0(Dec 12, 2022)

    What's Changed

    • build(deps): update rstest requirement from 0.15.0 to 0.16.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/16
    • build(deps): update speculoos requirement from 0.10.0 to 0.11.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/17
    • build(deps): update minijinja requirement from 0.26.0 to 0.27.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/18

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.10.0...v0.11.0

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Nov 26, 2022)

    What's Changed

    • axum-template now supports axum 0.6.X. See the Breaking changes and Migration guide sections for more information
    • Key now implements AsRef<str>

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.9.0...v0.10.0

    Breaking changes

    • axum_template::engine::Engine no longer implements axum::extract::FromRequest
    • axum_template::engine::Engine no longer implements tower_layer::Layer
    • axum_template::engine::EngineRejection has been removed
    • axum_template::Key no longer implements axum::extract::FromRequest

    Migration guide

    We suggest reading the official axum migration guide before attempting to migrate axum-template

    Sharing the engine

    axum-template now uses the new typesafe State extractor, meaning you will now need to provide a global state object instead of adding extension layers. For more information, see https://github.com/tokio-rs/axum/blob/main/axum/CHANGELOG.md#extractors.

    • Handlebars example diff: https://github.com/Altair-Bueno/axum-template/commit/c7e1ebafd53b932d3b9d96ae8654552e85152ca2#diff-a42b4386779af4e085bd3796181a95c3f28f7c836a89f9151d67e589aa6defc6
    • Minijinja example diff: https://github.com/Altair-Bueno/axum-template/commit/c7e1ebafd53b932d3b9d96ae8654552e85152ca2#diff-4a960f71cebe34d9372d0463ae1192d61c78bc59bcc9b1b0e0a25270f329d8ee
    • Tera example diff: https://github.com/Altair-Bueno/axum-template/commit/c7e1ebafd53b932d3b9d96ae8654552e85152ca2#diff-8884d37db8b28f37b744b8e99c9882b4c8dfcf7790953958e14910b1f6fee087

    Custom keys and custom engines

    See the new axum::request::FromRequestParts trait.

    • Custom engine example diff: https://github.com/Altair-Bueno/axum-template/commit/c7e1ebafd53b932d3b9d96ae8654552e85152ca2#diff-cd9a67fbcfb915c9ce5133ca7f491277d3711b8da3457a4316c28e7a5ec7be19
    • Custom key example diff: https://github.com/Altair-Bueno/axum-template/commit/c7e1ebafd53b932d3b9d96ae8654552e85152ca2#diff-206f6377aaa0e0335166dfccc5902fe123a0296fdd9f2551fadd6001063f0799
    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Nov 14, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.25.0 to 0.26.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/13

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.8.0...v0.9.0

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Nov 7, 2022)

    What's Changed

    • build(deps): update speculoos requirement from 0.9.0 to 0.10.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/11
    • build(deps): update minijinja requirement from 0.24.0 to 0.25.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/12

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.7.0...v0.8.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Oct 24, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.23.0 to 0.24.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/10

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.6.2...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Oct 13, 2022)

    What's Changed

    • fix: #8. Infinite recursion on IntoResponse for error types by @Altair-Bueno in https://github.com/Altair-Bueno/axum-template/pull/9

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.6.1...v0.6.2

    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Sep 26, 2022)

  • v0.6.0(Sep 26, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.22.1 to 0.23.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/7

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Sep 19, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.20.0 to 0.22.1 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/5
    • build(deps): Bump tera to 1.17 by @Altair-Bueno in https://github.com/Altair-Bueno/axum-template/pull/6

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Sep 5, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.18.0 to 0.20.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/4

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Aug 22, 2022)

    What's Changed

    • build(deps): update minijinja requirement from 0.17.0 to 0.18.0 by @dependabot in https://github.com/Altair-Bueno/axum-template/pull/3

    New Contributors

    • @dependabot made their first contribution in https://github.com/Altair-Bueno/axum-template/pull/3

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.2.2...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.2(Aug 16, 2022)

    What's Changed

    • fix: Engine no longer requires Clone for E by @Altair-Bueno in https://github.com/Altair-Bueno/axum-template/pull/2
    • fix: Crate no longer requires axum's default features

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.2.1...v0.2.2

    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Aug 12, 2022)

    What's Changed

    • Updated Cargo.toml with the correct crate version

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.2.0...v0.2.1

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Aug 12, 2022)

    What's Changed

    • BREAKING!: Replaced Render and RenderHtml trait bounds by @Altair-Bueno in https://github.com/Altair-Bueno/axum-template/pull/1

    Full Changelog: https://github.com/Altair-Bueno/axum-template/compare/v0.1.0...v0.2.0

    Migrating from v0.1.0

    • Render and RenderHtml keys now require AsRef<str> bounds instead of Borrow<str>. This change is subtle, and most users won't notice
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Aug 11, 2022)

Owner
Altair Bueno
Software engineering student from Málaga
Altair Bueno
Htmx extractors and request guards for axum.

axum-htmx axum-htmx is a small extension library providing extractors and request guards for the various htmx headers within axum. Additionally, the l

Rob 5 Aug 14, 2023
Code template for a production Web Application using Axum: The AwesomeApp Blueprint for Professional Web Development.

AwesomeApp rust-web-app More info at: https://awesomeapp.dev/rust-web-app/ rust-web-app YouTube episodes: Episode 01 - Rust Web App - Course to Produc

null 45 Sep 6, 2023
Starter template for use with the Leptos web framework and Axum.

Leptos Axum Starter Template This is a template for use with the Leptos web framework and the cargo-leptos tool using Axum. Creating your template rep

Leptos 10 Mar 4, 2023
A highly customizable, full scale web backend for web-rwkv, built on axum with websocket protocol.

web-rwkv-axum A axum web backend for web-rwkv, built on websocket. Supports BNF-constrained grammar, CFG sampling, etc., all streamed over network. St

Li Junyu 12 Sep 25, 2023
This is a simple Api template for Rust ( Axum framework )

Axum-Rust-Rest-Api-Template This project is an open source Rest Api Template built with Rust's Axum framework. Why this project? I have been learning

Thani 20 Jun 16, 2023
The goal of this repository is to have a real world template of a Rust backend using Axum, Diesel, etc.

Axum Diesel Real-World Example A modular Rust backend template based on the Domain-Driven Design (DDD) architecture, utilizing the Axum and Diesel fra

Quentin Piot 11 Sep 22, 2023
Demo of Rust and axum web framework

Demo of Rust and axum web framework Demonstration of: Rust: programming language that focuses on reliability and stability. axum: web framework that f

Joel Parker Henderson 115 Dec 29, 2022
Experiments with Rust CRDTs using Tokio web application framework Axum.

crdt-genome Synopsis Experiments with Rust CRDTs using Tokio web application framework Axum. Background Exploring some ideas of Martin Kleppmann, part

dougfort 3 Mar 18, 2022
Axum web framework tutorial for beginners.

Axum Tutorial For Beginners Hello web developers! This tutorial will cover how to write simple web applications in rust with axum framework. If you ar

Eray Karatay 46 Jan 5, 2023
Axum + Connect-Web = ♥️

Axum Connect-Web ⚠️ This project isn't even Alpha state yet. Don't use it. Brings the protobuf-based Connect-Web RPC framework to Rust via idiomatic A

Alec Thilenius 10 Mar 19, 2023
🪪 Session-based user authentication for Axum.

axum-login ?? Session-based user authentication for Axum. ?? Overview axum-login is a Tower middleware providing session-based user authentication for

Max Countryman 99 Jan 5, 2023
🌱🦀🌱 Trillium is a composable toolkit for building web applications with async rust 🌱🦀🌱

?????? Trillium is a composable toolkit for building web applications with async rust ??????

Trillium 243 Jan 2, 2023
Noria: data-flow for high-performance web applications

Noria: data-flow for high-performance web applications Noria is a new streaming data-flow system designed to act as a fast storage backend for read-he

MIT PDOS 4.5k Dec 28, 2022
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Max 11 Aug 10, 2022
Simple example of axum, sqlx with sqlite and utoipa (swagger) - without auth

axum_crud_api Simple example to learn creating CRUD rest apis in Rust with axum, sqlx with sqlite and utoipa (swagger) - without auth Also shows how t

null 2 Nov 12, 2022
Heavy Metal Leptos Stack with Tailwind, Axum, Sqlite, and Cargo Leptos

Heavy Metal Stack Leptos stack with Axum, TailwindCSS, and Sqlite This example creates a basic todo app with an Axum backend that uses Leptos' server

Ben Wishovich 7 Dec 31, 2022
Rust server with Axum, GraphQL and SurrealDb

??️ Article on my web Axum server, Async-GraphQl, SurrealDB template Run without any prior setup, DB is in memory: cargo run To use routes other than

null 15 Jun 26, 2023
Leptos Axum Prisma starter with Admin dashboard and SSR/SPA website

LAPA - Leptos Axum Prisma starter with Admin dashboard and SSR/SPA website Motivation I want to have practical full-stack setup to build websites and

Alexi Chepura 2 Jul 10, 2023
🥠 Sessions as a `tower` and `axum` middleware.

tower-sessions ?? Sessions as a `tower` and `axum` middleware. ?? Overview This crate provides sessions, key-value pairs associated with a site visito

Max Countryman 48 Oct 11, 2023