PHP Single-Query Snapshot
Native C extension wrapping Rust with the same no-batching query pattern as the Eloquent-like baseline.
| Driver | Implementation | Queries/s | Relative to Eloquent-like |
|---|---|---|---|
| qail-php (single) | Extension plus Rust core | 31,219 | 2.7x |
| Raw PDO | Prepared statements | 31,271 | 2.7x |
| Eloquent-like | PDO plus model hydration | 11,537 | baseline |
PHP interpretation
In this single-query configuration, the extension path tracked raw PDO throughput and stayed above the model-hydration baseline. The page is useful as a dated implementation note rather than a current landing page for the PHP surface.
Go CGO Snapshot
CGO calling a Rust static library with 1,000 queries per batch.
| Driver | Implementation | Queries/s | Relative to GORM |
|---|---|---|---|
| pgx | Pure Go, optimized | 239,000 | 8.9x |
| qail-go | CGO plus Rust core | 126,000 | 4.7x |
| GORM | ORM baseline | 27,000 | baseline |
Go interpretation
This run placed the CGO path between direct pgx and the ORM baseline, which makes the transport overhead visible without conflating it with ORM-layer work.
Zig single-query comparison setup
- pg.zig uses the Extended Query protocol and parses typed responses.
- qail-zig (initial) started with Simple Query mode and no response parsing, so the comparison was rerun.
- The historical comparison below fixes the parsed-row count at 55,000 for both paths.
Zig Single-Query Comparison
| Driver | Work done | Queries/s | Rows parsed |
|---|---|---|---|
| qail-zig | Zig I/O plus Rust FFI, response parse | 33,866 | 55,000 |
| pg.zig | Pure Zig, response parse | 16,990 | 55,000 |
Zig implementation notes
- Simple Query uses one message rather than Parse, Bind, Execute, and Sync.
- The Rust wire-protocol decoder is reused from qail-pg.
- qail-zig reused buffers in this harness while pg.zig performed additional per-query allocation work.
- The single-query ratio in this run was 33,866 q/s versus 16,990 q/s.
Cross-Language Snapshot
| Runtime | Query speed | Comparison baseline | Rust baseline share |
|---|---|---|---|
| Rust qail-pg | 354K q/s | - | 100% |
| qail-zig | 34K q/s | 2.0x vs pg.zig | N/A |
| qail-php (single) | 31K q/s | 2.7x vs Eloquent-like | 9% |
| qail-go (CGO) | 126K q/s | 4.7x vs GORM | 36% |
| qail-py (PyO3) | 122K q/s | 7.6x vs asyncpg | 35% |
This archive combines several harnesses. Use the dedicated transport reports or current runtime reports when you need the canonical surface for one subsystem.