Plugins & features overview

Everything below is opt-in. Core routing and handlers work with zero features. Enable only what you need.

Plugin crates (via churust features)

PageFeatureInstall API
JSONjsonContentNegotiation, Json<T>
LoggingloggingCallLogging
CORScorsCors
AuthauthAuth::bearer / basic / jwt
Rate limitratelimitRateLimit
CompressioncompressionCompression
TemplatestemplatesTemplates + Renderer
RedisredisRedisStore
ClientclientClient
OpenAPIopenapiOpenApi

features = ["full"] enables: json, logging, cors, auth, ratelimit, compression, templates.

Transport / core features

PageFeature
WebSocketsws
Static files & streamingfs (+ always-on Body)
Multipartmultipart
TLStls
HTTP/3http3

Pattern

churust = { version = "0.3", features = ["json", "auth"] }
#![allow(unused)]
fn main() {
use churust::prelude::*;

Churust::server()
    .install(/* plugins */)
    .routing(|r| { /* routes that use extractors from those plugins */ })
}

Full matrix: Feature flags.