Blixt

Blixt

Lightning-fast Rust web framework.

Compile-time safety. Zero JavaScript build steps.

$ cargo install blixt-cli
$ blixt new my_app
$ cd my_app
$ blixt dev

Compile-Time Safe

Templates, SQL queries, and routes checked at build time. Errors caught before your code ships.

Zero JS Build Steps

Interactive UIs via Datastar SSE. Tailwind auto-downloaded. No Node.js, no webpack, no bundler.

Batteries Included

Auth, CSRF, rate limiting, query builder, scaffolding, flash messages, forms, validation — all built in.

The Stack

Axum
~700k req/s
Askama
Compile-time templates
SQLx
Type-safe SQL
Datastar
SSE interactivity
Tailwind v4
Zero Node.js

Clean, Predictable Code

Handler
pub async fn index(
    State(ctx): State<AppContext>,
    pagination: PaginationParams,
) -> Result<impl IntoResponse> {
    let page = Select::from("posts")
        .columns(COLUMNS)
        .order_by("created_at", Desc)
        .fetch_all::<Post>(&ctx.db).await?;
    render!(PostIndex { page })
}
Scaffold
$ blixt generate scaffold post \
    title:string \
    body:text \
    published:bool

created model post and migration
created controller post

next: Add CRUD routes to src/main.rs:
  .route("/posts", get(..::index))
  .route("/posts", post(..::create))
  .route("/posts/{id}", get(..::show))
  .route("/posts/{id}", put(..::update))
  .route("/posts/{id}", delete(..::destroy))

Everything You Need

render!() — one-line template responses
Query Builder — Select, Insert, Update, Delete
Form<T> — form parsing with CSRF validation
Flash & Redirect — cookie-based messages
DatastarSignals — SSE-based reactive UI
JWT Auth — algorithm-pinned, deny-by-default
Validator — type-safe, compile-time rule checks
CSRF Protection — double-submit cookie pattern
Rate Limiting — token-bucket with eviction
Scaffold CLI — full CRUD in one command
Argon2id — OWASP-compliant password hashing
Background Jobs — async with bounded concurrency
cargo install blixt-cli