axum/ECOSYSTEM.md
2024-12-24 12:01:15 +01:00

13 KiB

Community Projects

If your project isn't listed here and you would like it to be, please feel free to create a PR.

Community maintained axum ecosystem

  • axum-server: axum-server is a hyper server implementation designed to be used with axum.
  • axum-typed-websockets: axum::extract::ws with type safe messages.
  • tower-cookies: Cookie manager middleware
  • axum-flash: One-time notifications (aka flash messages) for axum.
  • axum-msgpack: MessagePack Extractors for axum.
  • axum-sqlx-tx: Request-bound SQLx transactions with automatic commit/rollback based on response.
  • aliri_axum and aliri_tower: JWT validation middleware and OAuth2 scopes enforcing extractors.
  • ezsockets: Easy to use WebSocket library that integrates with Axum.
  • axum_session: Database persistent sessions like pythons flask_sessionstore for Axum.
  • axum_session_auth: Persistent session based user login with rights management for Axum.
  • axum-auth: High-level http auth extractors for axum.
  • axum-keycloak-auth: Protect axum routes with a JWT emitted by Keycloak.
  • axum-tungstenite: WebSocket connections for axum directly using tungstenite
  • axum-jrpc: Json-rpc extractor for axum
  • axum-tracing-opentelemetry: Middlewares and tools to integrate axum + tracing + opentelemetry
  • svelte-axum-project: Template and example for Svelte frontend app with Axum as backend
  • axum-streams: Streaming HTTP body with different formats: JSON, CSV, Protobuf.
  • axum-template: Layers, extractors and template engine wrappers for axum based Web MVC applications
  • axum-template: GraphQL and REST API, SurrealDb, JWT auth, direct error handling, request logs
  • axum-guard-logic: Use AND/OR logic to extract types and check their values against Service inputs.
  • axum-casbin-auth: Casbin access control middleware for axum framework
  • aide: Code-first Open API documentation generator with axum integration.
  • axum-typed-routing: Statically typed routing macros with OpenAPI generation using aide.
  • axum-jsonschema: A Json<T> extractor that does JSON schema validation of requests.
  • axum-login: Session-based user authentication for axum.
  • axum-csrf-sync-pattern: A middleware implementing CSRF STP for AJAX backends and API endpoints.
  • axum-otel-metrics: A axum OpenTelemetry Metrics middleware with prometheus exporter supported.
  • jwt-authorizer: JWT authorization layer for axum (oidc discovery, validation options, claims extraction, etc.)
  • axum-typed-multipart: Type safe wrapper for axum::extract::Multipart.
  • tower-governor: A Tower service and layer that provides a rate-limiting backend by governor
  • axum-restful: A restful framework based on axum and sea-orm, inspired by django-rest-framework.
  • springtime-web-axum: A web framework built on Springtime and axum, leveraging dependency injection for easy app development.
  • rust-axum-with-google-oauth: website template for Google OAuth authentication on Axum, using SQLite with SQLx or MongoDB and MiniJinja.
  • axum-htmx: Htmx extractors and request guards for axum.
  • axum-prometheus: A middleware library to collect HTTP metrics for axum applications, compatible with all metrics.rs exporters.
  • axum-valid: Extractors for data validation using validator, garde, and validify.
  • tower-sessions: Sessions as a tower and axum middleware.
  • shuttle: Build & ship backends without writing any infrastructure files. Now with Axum support.
  • socketioxide: An easy to use socket.io server implementation working as a tower layer/service.
  • axum-serde: Provides multiple serde-based extractors / responses, also offers a macro to easily customize serde-based extractors / responses.
  • loco.rs: A full stack Web and API productivity framework similar to Rails, based on Axum.
  • axum-test: High level library for writing Cargo tests that run against Axum.
  • axum-messages: One-time notification messages for Axum.
  • spring-rs: spring-rs is a microservice framework written in rust inspired by java's spring-boot, based on axum
  • zino: Zino is a next-generation framework for composable applications which provides full integrations with axum.
  • axum-rails-cookie: Extract rails session cookies in axum based apps.
  • axum-ws-broadcaster: A broadcasting liblary for both axum-typed-websockets and axum::extract::ws.
  • axum-negotiate-layer Middleware/Layer for Kerberos/NTLM "Negotiate" authentication.

Project showcase

  • HomeDisk: ☁️ Fast, lightweight and Open Source local cloud for your data.
  • Houseflow: House automation platform written in Rust.
  • JWT Auth: JWT auth service for educational purposes.
  • ROAPI: Create full-fledged APIs for static datasets without writing a single line of code.
  • notify.run: HTTP-to-WebPush relay for sending desktop/mobile notifications to yourself, written in Rust.
  • turbo.fish (repository): Find out for yourself 😉
  • Book Management: CRUD system of book-management with ORM and JWT for educational purposes.
  • realworld-axum-sqlx: A Rust implementation of the Realworld demo app spec using Axum and SQLx. See https://github.com/davidpdrsn/realworld-axum-sqlx for a fork with up to date dependencies.
  • Rustapi: RESTful API template using MongoDB
  • axum-postgres-template: Production-ready Axum + PostgreSQL application template
  • RUSTfulapi: Reusable template for building REST Web Services in Rust. Uses Axum HTTP web framework and SeaORM.
  • Jotsy: Self-hosted notes app powered by Skytable, Axum and Tokio
  • Svix (repository): Enterprise-ready webhook service
  • emojied (repository): Shorten URLs to emojis!
  • CLOMonitor (repository): Checks open source projects repositories to verify they meet certain best practices.
  • Pinging.net (repository): A new way to check and monitor your internet connection.
  • wastebin: A minimalist pastebin service.
  • sandbox_axum_observability A Sandbox/showcase project to experiment axum and observability (tracing, opentelemetry, jaeger, grafana tempo,...)
  • axum_admin: An admin panel built with axum, Sea-orm and Vue 3.
  • rgit: A blazingly fast Git repository browser, compatible with- and heavily inspired by cgit.
  • Petclinic: A port of Spring Framework's Petclinic showcase project to Axum
  • axum-middleware-example: A authorization application using Axum-web, Casbin and Diesel, with JWT support.
  • circleci-hook: Translate CircleCI WebHooks to OpenTelemetry traces to improve your test insights. Add detail with otel-cli to capture individual commands. Use the TRACEPARENT integration to add details from your tests.
  • lishuuro.org: Small chess variant server that uses Rust as backend(Axum framework).
  • freedit: A forum powered by rust.
  • axum-http-auth-example: Axum http auth example using postgres and redis.
  • Deaftone: Lightweight music server. With a clean and simple API
  • dropit: Temporary file hosting.
  • cobrust: Multiplayer web based snake game.
  • meta-cross: Tweaked version of Tic-Tac-Toe.
  • httq HTTP to MQTT trivial proxy.
  • Pods-Blitz Self-hosted podcast publisher. Uses the crates axum-login, password-auth, sqlx and handlebars (for HTML templates).
  • ReductStore: A time series database for storing and managing large amounts of blob data
  • randoku: A tiny web service which generates random numbers and shuffles lists randomly
  • sero: Host static sites with custom subdomains as surge.sh does. But with full control and cool new features. (axum, sea-orm, postgresql)
  • Hatsu: 🩵 Self-hosted & Fully-automated ActivityPub Bridge for Static Sites.
  • Mini RPS: Mini reverse proxy server, HTTPS, CORS, static file hosting and template engine (minijinja).

Tutorials

Building a SaaS with Rust & Next.js A tutorial for combining Next.js with Rust via Axum to make a SaaS.