diesel-pg-explain

Crates.iodiesel-pg-explain
lib.rsdiesel-pg-explain
version1.0.0
created_at2025-05-14 18:49:57.632021+00
updated_at2025-05-14 18:49:57.632021+00
descriptionWrap Diesel PostgreSQL queries in EXPLAIN and parse the plan into structured Rust types.
homepage
repositoryhttps://github.com/johnlepikhin/diesel-pg-explain
max_upload_size
id1673835
size11,521
Evgenii Lepikhin (johnlepikhin)

documentation

https://docs.rs/diesel-pg-explain

README

crates.io docs.rs CI License: MIT

diesel-explain-plan

A lightweight helper crate for wrapping Diesel PostgreSQL queries in EXPLAIN (FORMAT JSON) and parsing the result into structured Rust types.

This crate is intended for diagnostics, performance analysis, query logging, and automated tooling that works with PostgreSQL query plans.


✨ Features

  • 🧱 Wrap any Diesel query in EXPLAIN (FORMAT JSON)
  • 📊 Parse the output into a structured ExplainPlan tree
  • 🛠 Integrates with Diesel’s query builder and connection types
  • ⚠️ Does not execute the actual query — just retrieves the plan

🚀 Example

use diesel::prelude::*;
use diesel_pg_explain::{ExplainWrapped, ExplainPlan};

let connection = &mut establish_connection();

let query = users::table.filter(users::age.gt(30));

// Wrap the query with EXPLAIN
let plan: ExplainPlan = query.wrap_explain().explain(connection)?;

// Print the query plan tree
println!("{:#?}", plan);
Commit count: 5

cargo fmt