Release 0.1.4 - 2026-08-08
This release introduces a configuration mechanism, and replaces Handlebars-based client-side
rendering of Handlebars templates with generated Leptos components. This release also
replaces actix-router with leptos_router.
Read the full change log here.
Configuration
A src/config.rs file now exists in every application, which defines a function that is responsible
for returning a JSON object:
// src/config.rs
pub fn new() -> serde_json::Value {
serde_json::json!({
"api_url": option_env!("API_URL").unwrap_or("http://localhost:3000"),
})
}
This configuration is compiled into your application at build time, ensuring your WASM module contains a fully sealed configuration for strict release versioning.
The app configuration is also passed into adapters through their init() fn, which is how
they are able to read settings such as the API server URL.
Views Become Leptos Components
Handlebars is no longer a runtime dependency, and is now only used during build time. At build time, Handlebars templates are translated into Leptos components.
Given this src/templates/application.hbs template:
<h1>Welcome to Auric SPA!</h1>
{{outlet}}
The following Leptos component is generated:
$ make
$ cat src/generated/views/application.rs
#[component]
pub fn ApplicationView() -> impl IntoView {
view! {
<Router>
<Routes fallback=|| "Not found.">
<Route path=path!("/") view=IndexView />
<Route path=path!("/*any") view=|| view! { <h1>Not found.</h1> } />
</Routes>
<h1>Welcome to Auric SPA!</h1>
<div />
</Router>
}
}