mirror of https://github.com/rwf2/Rocket.git
7cc818cd85
This commit introduces the ability to dynamically select a TLS configuration based on the client's TLS hello via the new `Resolver` trait. In support of this, it also makes the following changes: * Added `Authority::set_port()`. * `UdsListener` is now `UnixListener`. * `Bindable` removed in favor of new `Bind`. * All built-in listeners now implement `Bind<&Rocket>`. * `Connection` requires `AsyncRead + AsyncWrite`. * The `Debug` impl for `Endpoint` displays the underlying address. * `Listener` must be `Sized`. * The TLS listener was moved to `tls::TlsListener`. * The preview `quic` listener no longer implements `Listener`. * Added `TlsConfig::server_config()`. * Added `race` future helpers. * Added `Rocket::launch_with()`, `Rocket::bind_launch()`. * Added a default `client.pem` to the TLS example. * Various unnecessary listener `Config` structures removed. In addition, the testbench was revamped to support more scenarios. This resulted in the following issues being found and fixed: * Fix an issue where the logger would ignore color requests. * Clarified docs for `mtls::Certificate` guard. * Improved error messages on listener misconfiguration. Resolves #2730. Resolves #2363. Closes #2748. Closes #2683. Closes #2577. |
||
---|---|---|
.. | ||
src | ||
tests | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
README.md
dyn_templates
This crate adds support for dynamic template rendering to Rocket. It
automatically discovers templates, provides a Responder
to render templates,
and automatically reloads templates when compiled in debug mode. At present, it
supports Handlebars and Tera.
Usage
-
Enable the
rocket_dyn_templates
feature corresponding to your templating engine(s) of choice:[dependencies.rocket_dyn_templates] version = "0.1.0" features = ["handlebars", "tera"]
-
Write your template files in Handlebars (
.hbs
) and/or Tera (.tera
) in the configurabletemplate_dir
directory (default:{rocket_root}/templates
). -
Attach
Template::fairing()
and return aTemplate
usingTemplate::render()
, supplying the name of the template file minus the last two extensions:use rocket_dyn_templates::{Template, context}; #[get("/")] fn index() -> Template { Template::render("template-name", context! { field: "value" }) } #[launch] fn rocket() -> _ { rocket::build().attach(Template::fairing()) }
See the crate docs for full details.