prax-query 0.5.0

Type-safe query builder for the Prax ORM
Documentation

prax-query

Type-safe query builder for Prax ORM.

Overview

prax-query provides a fluent, type-safe API for building database queries with support for filtering, pagination, relations, and transactions.

Features

  • Fluent query API: findMany, findUnique, create, update, delete, upsert
  • Type-safe filtering with AND/OR/NOT combinators
  • Pagination with skip/take and cursor-based navigation
  • Aggregation queries: count, sum, avg, min, max, groupBy
  • Raw SQL escape hatch with type interpolation
  • Connection pooling and configuration
  • Middleware/hooks system for query interception
  • Multi-tenant support

Performance

  • 1.7ns simple filter creation (3x faster than Diesel)
  • 64 bytes Filter enum size (fits in single cache line)
  • 6.6x faster SQL string construction vs Diesel

Usage

use prax_query::prelude::*;

// Find users with filters
let users = client
    .user()
    .find_many()
    .where(user::email::contains("@example.com"))
    .order_by(user::created_at::desc())
    .take(10)
    .exec()
    .await?;

// Create with nested relations
let user = client
    .user()
    .create(user::Create {
        email: "alice@example.com".into(),
        name: Some("Alice".into()),
        ..Default::default()
    })
    .exec()
    .await?;

License

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