What problem does it solve? Building production Axum services in Rust involves many decisions — state injection, extractor ordering, Tower middleware layering, typed error mapping, WebSocket handling, and security hardening — and getting any of them wrong leads to panics, leaked secrets, or unhandled timeouts. ## Core Features & Use Cases - Implementation guidance: Covers Axum 0.8 routing, AppState with State extractors, Tower ServiceBuilder middleware ordering, typed IntoResponse errors, and WebSocket upgrade patterns. - Security and hardening: Provides CORS lockdown, loopback binding behind a reverse proxy, auth-before-upgrade for WebSockets, body size limits, and secrets handling. - Testing and lint gates: Includes oneshot-based HTTP tests, WS test checklists, and cargo fmt/clippy/test CI gates. - Use Case: When adding a new authenticated JSON endpoint to an Axum backend, use this Skill to sketch the router, define AppState ownership, map errors to status codes, and write oneshot tests before claiming done. ## Quick Start Ask the agent to implement a new Axum 0.8 REST endpoint with typed errors, middleware, and tests for your Rust backend.