rustango 0.27.6

Django-shaped batteries-included web framework for Rust: ORM + migrations + auto-admin + multi-tenancy + audit log + auth (sessions, JWT, OAuth2/OIDC, HMAC) + APIs (ViewSet, OpenAPI auto-derive, JSON:API) + jobs (in-mem + Postgres) + email + media (S3 / R2 / B2 / MinIO + presigned uploads + collections + tags) + production middleware (CSRF, CSP, rate-limiting, compression, idempotency, etc.).
Documentation
//! `rustango::server` — Django-style runserver builder.
//!
//! Owns every line of boilerplate that's identical across tenancy
//! apps: connect to `DATABASE_URL`, build `TenantPools`, mount the
//! resolver chain, host-dispatch apex → operator console / subdomain
//! → tenant admin + user routes, bind + serve.
//!
//! ```ignore
//! use rustango::server::Builder;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     tracing_subscriber::fmt().init();
//!     Builder::from_env().await?
//!         .admin_show_only(["author", "post"])
//!         .api(my_app::urls::api())
//!         .seed_with(|pools, registry, registry_url| async move {
//!             my_app::seed::run(&pools, &registry, &registry_url).await
//!         })
//!         .await?
//!         .serve("0.0.0.0:8080").await
//! }
//! ```

#[cfg(feature = "runserver")]
mod app;
#[cfg(feature = "tenancy")]
mod builder;

#[cfg(feature = "runserver")]
pub use app::AppBuilder;
#[cfg(feature = "tenancy")]
pub use builder::{ApiRouter, Builder};