Reference
API Reference
The full API documentation is available on docs.rs:
Feature flags
Hauchiwa uses feature flags to let you opt-in to expensive dependencies.
To keep your build times low, you can disable features you don't need in Cargo.toml:
[dependencies]
hauchiwa = { version = "0.22.1", default-features = false, features = ["grass"] }
Available Features
| Feature | Default | Description |
|---|---|---|
grass |
Yes | Enables Sass/SCSS compilation via the grass crate. |
image |
Yes | Enables image conversion (WebP, AVIF, PNG) via the image crate. |
tokio |
Yes | Enables async runtime support (required for server and pagefind). |
live |
Yes | Enables live reload functionality (WebSocket + file watching). |
server |
Yes | Enables the development HTTP server (axum). |
rolldown |
No | Enables native Rust JS/TS bundling via Rolldown. |
pagefind |
No | Enables static search indexing via pagefind. |
sitemap |
No | Enables sitemap generation via sitemap-rs. |
minijinja |
No | Enables Jinja2-style template loading via minijinja. |
logging |
No | Enables init_logging(): ANSI tracing subscriber with progress bar integration. |
server and pagefind enable tokio automatically. server alone does not
provide watch(); enable live as well for the development loop.
External tools
load_esbuild() and load_svelte() are available without optional Cargo
features, but require esbuild and deno, respectively, on PATH. Hauchiwa
checks registered binary requirements before starting a build or watch session.
load_rolldown() needs the rolldown feature but no external bundler binary.