Autumn 🍂
Spring Boot-style web framework for Rust, built on Axum.
Autumn assembles proven Rust crates into a convention-over-configuration web stack with proc-macro ergonomics, framework defaults, and customization options when you need them. If Spring Boot, Rails, or Laravel feels familiar, Autumn aims for that same "ship the app, not the plumbing" shape in Rust.
Status: the latest tagged release is
v0.1.0(2026-03-26), buttrunkalready contains substantial post-v0.1.0work. This README documents the currenttrunkbranch, not just thev0.1.0tag. The framework is still experimental and not recommended for production use yet.
Features
- Route and app macros -
#[get],#[post],#[put],#[delete],routes![],#[autumn_web::main] - Pre-rendering pages to static HTML -
#[static_get]+static_routes![]withautumn buildpre-rendering todist/ - Application builder -
.routes(),.tasks(),.static_routes(),.scoped(),.merge(), and.nest() - Configuration and profiles - defaults,
autumn.toml,autumn-{profile}.toml, andAUTUMN_*overrides - Database ergonomics - async Postgres pool,
Dbextractor,#[model],#[repository], hooks, and embedded migrations - HTML stack - Maud templating, bundled htmx, Tailwind build pipeline, and static asset serving
- Operations -
/health,/actuator/*, structured logging, metrics, and graceful shutdown - Background work -
#[scheduled]tasks and runtime task visibility at/actuator/tasks - Security primitives - session cookies, auth extractor, security headers, CSRF, and
#[secured] - CLI workflow -
autumn new,autumn setup,autumn dev,autumn build, andautumn migrate
Quickstart
# Install the CLI from this workspace
# Create a new project
# Optional: download Tailwind CSS for styled builds
# Development server with file watching
# Or run without watch mode
# cargo run
Visit http://localhost:3000. Autumn also auto-mounts /health,
/actuator/health, /actuator/info, and /static/js/htmx.min.js.
If you add #[static_get] routes, autumn build pre-renders them into
dist/.
Local-Safe vs Production-Safe
Autumn still distinguishes between "works on your laptop" and "safe to run in a multi-replica deployment":
- Local-safe defaults: in-memory sessions, pretty logs in
dev, process-local#[scheduled]tasks, and single-binary startup. - Production-safe defaults:
/live,/ready,/startupprobes, OTLP telemetry config, Redis-backed sessions, container scaffolding fromautumn new, and explicit migration jobs before web replicas roll.
If you are deploying beyond a single process, read the Cloud-Native Guide before treating the defaults as done.
Example
This is the main.rs generated by autumn new:
use *;
async
async
async
Built On
- Axum - async HTTP routing and middleware
- Diesel + diesel-async - database access
- Maud - compiled HTML templates
- htmx - HTML-first interactivity
- Tailwind CSS - utility-first styling
- Tokio - async runtime
- Tracing - structured logging
Examples
| Example | Description |
|---|---|
examples/hello |
Minimal hello-world app with route macros and no database |
examples/todo-app |
Classic full-stack CRUD app with Diesel, Maud, htmx, Tailwind, and JSON endpoints |
examples/blog |
Blog engine with admin UI, validation, and pre-rendering pages to static HTML via #[static_get] |
examples/bookmarks |
Repository macro, generated CRUD API, profiles, scheduled tasks, and actuator endpoints |
examples/wiki |
Mutation hooks, revision history, generated REST API, and slug lifecycle management |
Documentation
Requirements
- Rust 1.86.0+ (edition 2024)
- PostgreSQL for database-backed apps
Autumn can still run without a database if you omit the [database] section.
License
MIT OR Apache-2.0