BenchmarksGray product news

Gray completes three-hour HTTP qualification

Three sequential one-hour gates delivered 49,997.81 plaintext requests/s, 39,993.57 JSON requests/s and 3,999.85 PostgreSQL requests/s.

Matrix3 routes × 1 hour
Plaintext49,997.81 req/s
JSON39,993.57 req/s
Steady-state growth0 KiB RSS · 0 FDs
01

Three routes completed the full hour

Gray’s Static-mode route matrix completed three sequential one-hour qualifications: plaintext HTTP, native JSON and a parameterized PostgreSQL query. The complete run lasted 10,858 seconds, including warmup, settling and transition work between routes.

The runner performed an exact-response preflight before each load phase. During the hour it preserved wrk2’s corrected-latency output, sampled the Gray process after connection ramp, and failed the route if delivery, response status, process health, memory growth or file-descriptor growth violated policy.

Plaintext achieved 49,997.81 requests/s against 50,000 requested. Corrected p50 was 1.34 ms, p99 was 7.00 ms and p99.9 was 23.87 ms.

02

JSON held the same operating shape

The JSON route encoded a new response for every request through Gray’s native JSON path. It achieved 39,993.57 requests/s against 40,000 requested, or 99.984% delivery.

Corrected p50 was 1.31 ms, p99 was 4.09 ms and p99.9 was 17.30 ms. The Gray process remained at 10,316 KiB RSS across all 358 steady-state samples, with 262 open file descriptors and zero measured growth.

The plaintext process produced the same resource result: 10,284 KiB RSS in every steady-state sample and no descriptor growth.

03

PostgreSQL exposed the queue

The original PostgreSQL route delivered 3,999.85 requests/s against 4,000 requested with flat resources, but corrected p99 reached 802.82 ms and p99.9 reached 1.55 seconds. The route delivered the work; it did not deliver an acceptable tail.

That result identified a blocking architecture in the first database path. Each synchronous query occupied a reactor worker until libpq returned, allowing requests to queue even while CPU remained available.

Grayworth subsequently replaced that path with readiness-driven libpq and compiler-hidden handler continuations. The later continuation qualification is reported as a separate product milestone rather than being substituted into this original record.

04

The record is reproducible

The report records the Gray binary SHA-256, application and runner hashes, execution mode, duration, requested rates, connection count, CPU topology, database configuration and all route summaries. The publication renderer refuses incomplete or tampered matrices.

This is a same-host Gray product qualification, not an official TechEmpower result or a universal language ranking. Its purpose is to establish sustained delivery, corrected latency and resource stability for the declared applications and environment.

The raw comparison data, methodology and route report remain linked so readers can inspect the result behind the headline.

05

What was measured

Gray measured three declared Static-mode routes on one host: plaintext HTTP, native JSON and a parameterized PostgreSQL query. Each route had a requested rate, exact-response preflight, one-hour load phase, corrected-latency output and steady-state RSS and descriptor sampling under the recorded CPU and database configuration.

The reported delivery and resource values describe those fixtures and that execution environment. They do not establish a cross-machine capacity estimate, a production service-level objective, or a comparison with another language, framework or managed platform.

06

How to read this result

This result documents that the original route matrix completed its declared qualification gates and makes the earlier PostgreSQL tail visible rather than hiding it behind an aggregate. The later readiness-driven continuation result is a separate milestone because it changed the database architecture and therefore is not evidence for the original run.

The canonical formal record is [GW-2026-0002](/publications/gw-2026-0002). It is the publication to cite for the full methodology, artifact identities, requested rates and route-level evidence behind this newsroom summary.