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.
| Profile | Kruda v1.8.0 | Fiber v3.5.0 | Actix v4.15.0 |
|---|---|---|---|
| 4 workers | 533,210 req/s | 259,170 req/s | 521,984 req/s |
| 8 workers | 580,607 req/s | 396,894 req/s | 683,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 rate | Kruda p99 | Fiber p99 | Actix p99 |
|---|---|---|---|
| 4 workers / 129k req/s | 1.970 ms | 3.090 ms | 1.880 ms |
| 8 workers / 198k req/s | 2.390 ms | 3.385 ms | 2.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:
- reads 30 query values;
- converts integers, booleans, floats, and strings into a typed input;
- runs compiled validation rules;
- 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