Skip to content

Validated typed binding — 21 September 2026 ​

Kruda v1.8.0, Fiber v3.5.0, and Actix Web v4.15.0 on one quiet Linux host. The route binds 30 query values, validates the typed input, and returns an exact 30-field JSON response. These are scoped lab results.

2.06x Fiber throughput at four workers ​

Capacity used four wrk threads, 256 connections, a 2-second warmup, and an 8-second measurement. Medians cover six balanced permutations per profile.

ProfileKruda v1.8.0Fiber v3.5.0Actix v4.15.0
4 workers533,210 req/s259,170 req/s521,984 req/s
8 workers580,607 req/s396,894 req/s683,998 req/s
4 workers Higher is better
Kruda v1.8.0533,210 req/s
Fiber v3.5.0259,170 req/s
Actix v4.15.0521,984 req/s
8 workers Higher is better
Kruda v1.8.0580,607 req/s
Fiber v3.5.0396,894 req/s
Actix v4.15.0683,998 req/s

At four workers, Kruda delivered 2.06x Fiber's throughput and led Fiber in all six paired rounds. Kruda and Actix remained in the same throughput range: the median gap was 2.2%, with each winning three paired rounds. At eight workers, Actix led Kruda by 17.8%, while Kruda led Fiber by 46.3%.

Lower p99 than Fiber at equal load ​

Corrected latency used a pinned wrk2 client at 50% of the slowest fresh capacity median for each profile.

Profile / offered rateKruda p99Fiber p99Actix p99
4 workers / 129k req/s1.970 ms3.090 ms1.880 ms
8 workers / 198k req/s2.390 ms3.385 ms2.230 ms
4 workers at 129k req/s Lower is better
Kruda v1.8.01.970 ms
Fiber v3.5.03.090 ms
Actix v4.15.01.880 ms
8 workers at 198k req/s Lower is better
Kruda v1.8.02.390 ms
Fiber v3.5.03.385 ms
Actix v4.15.02.230 ms

Kruda's median p99 was 36.2% below Fiber at four workers and 29.4% below Fiber at eight workers. Kruda was lower in all six paired rounds in both profiles. The Kruda–Actix gaps were below wrk2's practical reporting resolution.

What the route does ​

Each request:

  1. reads 30 query values;
  2. converts integers, booleans, floats, and strings into a typed input;
  3. runs compiled validation rules;
  4. returns an exact 30-field JSON response.

Before load was accepted, each server also had to return the same structured 422 response for an invalid value. This workload represents field-heavy search, filter, report, and form APIs. It does not claim that Kruda leads every plaintext or minimal JSON route.

Test conditions ​

  • Kruda v1.8.0 commit 5ff81f1c7d961f7aa71d74d426310987b5a96a19
  • Fiber v3.5.0; Actix Web v4.15.0
  • Linux 6.8.0-139 x86-64 KVM guest, Intel i5-13500, 16 vCPUs
  • Go 1.27.1; rustc 1.98.1
  • HTTP/1.1 loopback; no TLS
  • 36 capacity samples and 36 matched-rate samples
  • 318,599,076 requests across accepted capacity and matched-rate measurements
  • zero socket and non-2xx errors

Read the committed evidence and provenance

Released under the MIT License.