prax-axum

Crates.ioprax-axum
lib.rsprax-axum
version0.5.0
created_at2025-12-21 17:54:31.018048+00
updated_at2026-01-07 18:35:16.553403+00
descriptionAxum framework integration for Prax ORM
homepagehttps://github.com/pegasusheavy/prax-orm
repositoryhttps://github.com/pegasusheavy/prax-orm
max_upload_size
id1998392
size95,998
Joseph R. Quinn (quinnjr)

documentation

README

prax-axum

Axum framework integration for Prax ORM.

Overview

prax-axum provides Tower-compatible middleware and extractors for the Axum web framework.

Features

  • PraxLayer Tower middleware
  • DatabaseConnection extractor
  • Compatible with Axum state management
  • Zero-cost layer design

Usage

use axum::{Router, routing::get};
use prax_axum::{PraxClientBuilder, PraxLayer, DatabaseConnection};

#[tokio::main]
async fn main() {
    let prax = PraxClientBuilder::new()
        .url("postgresql://localhost/mydb")
        .build()
        .await
        .unwrap();

    let app = Router::new()
        .route("/users", get(list_users))
        .layer(PraxLayer::new(prax));

    axum::serve(listener, app).await.unwrap();
}

async fn list_users(
    DatabaseConnection(db): DatabaseConnection,
) -> Json<Vec<User>> {
    let users = db.user().find_many().exec().await.unwrap();
    Json(users)
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 0

cargo fmt