Reinhardt™

Polylithic Batteries-Included Web Framework for Rust

Build with all the power of Django’s batteries-included philosophy,
or compose only what you need—your choice, your way.

v0.1.0-rc.15 · BSD-3-Clause · crates.io

Why Reinhardt?

🧩 Polylithic

Compose exactly the components you need. Use everything or just the HTTP core—your project, your rules.

🔒 Type-Safe ORM

Compile-time validated queries via SeaQuery. No runtime surprises, no SQL injection by construction.

⚡ Batteries Included

Auth, REST, Admin, GraphQL, WebSockets, i18n, Pagination—all available, none mandatory.

🌐 Modern WASM Frontend

Built-in SSR + hydration via reinhardt-pages. Fine-grained reactivity, server functions, and component-based UI—no separate JS framework needed.

📱 One Source, Multi-Platform

Write once, deploy everywhere. Web, desktop, and mobile from a single Rust codebase. (Planned)

🎛️ 70+ Feature Flags

Fine-grained control over your build. Include only the features you use—minimal binary size, maximum flexibility.

🛠️ Django-Style CLI

Scaffold projects and apps with reinhardt-admin. Run dev server, execute migrations, collect static files—a familiar workflow for Django developers.

💉 FastAPI-Style DI

Automatic dependency injection via #[inject] and Depends<T>. Type-safe extraction of path params, query strings, headers, cookies, JSON, and form data.

🔌 WASM Plugin System

Extend your app with static compile-time plugins or dynamic WASM plugins loaded at runtime via wasmtime. Manage plugins from crates.io with built-in CLI.

📖 Auto OpenAPI & Browsable API

Zero-config OpenAPI schema generation plus a DRF-inspired browsable API interface. Interactive API documentation out of the box.

⚙️ Environment-Aware Config

Layered TOML settings per environment (base, local, staging, production) with REINHARDT_ENV profile switching. No external config crates needed.

🗄️ Multi-Database Support

PostgreSQL, MySQL, SQLite, and CockroachDB via feature flags. Switch databases at compile time without changing application code.

Get Started in Seconds

[dependencies]
reinhardt = { version = "0.1.0-rc.15", package = "reinhardt-web" }
Full Quickstart Guide →

Inspired by the Best

InspirationWhat We BorrowedWhat We Improved
🐍 DjangoBatteries-included, ORM design, admin panelFeature flags for composable builds, Rust type safety
🎯 Django RESTSerializers, ViewSets, permissionsCompile-time validation, zero-cost abstractions
⚡ FastAPIDI system, automatic OpenAPINative Rust performance, no runtime overhead
🗄️ SQLAlchemyQuerySet patterns, relationship handlingType-safe query builder, compile-time validation