Benchmarks

Latest published HTTPS numbers from the Ubuntu 24 bare-metal Linux runtime. Same payload, same concurrency points, same benchmark tool, with ALOS verified on the native io_uring path.

Benchmark Environment

These published numbers come from an Ubuntu 24 bare-metal rerun using local loopback and the native Linux runtime.

Ubuntu 24 on xeon E3-1270 8 thread
Linux amd64 bare metal
wrk over HTTPS
50 threads, 9-second runs
io_uring verified
Multishot accept/recv + provided buffers

All frameworks were tested over HTTPS with TLS using the same JSON response payload. ALOS was checked with the io_uring startup probe before publishing these numbers.

Methodology

Every framework was tested under identical conditions to ensure a fair comparison:

  • Benchmark toolwrk with 50 threads, 9-second duration per run
  • Protocol — HTTPS with TLS on all frameworks
  • Payload — Same JSON response body across all frameworks
  • Concurrency levels — 30, 500, 5,000, and 8,000 concurrent connections
  • Languages — Go frameworks (ALOS, Fiber, Gin, Echo, Iris) and Rust (Actix Web) tested side-by-side
  • Environment — Local loopback on Ubuntu 24 bare metal

Why ALOS is faster: ALOS HTTP bypasses net/http entirely. On Linux amd64 it uses the native io_uring path with multishot accept/recv, provided buffer rings, a custom TLS 1.3 serving path, and zero-allocation routing hot paths. There are no interface dispatches or reflection in the request pipeline.

Throughput (Requests/sec)

Peak requests per second at 500 concurrent connections — the sweet spot for maximum throughput:

Peak Throughput (500 connections)

ALOS HTTP Winner
241K
240,707 req/s
Actix Web Rust
165K
165,165 req/s
Fiber v3
144K
144,342 req/s
Gin
113K
113,220 req/s
Echo
109K
108,755 req/s
Iris
111K
111,138 req/s
ALOS HTTP delivers 45.7% higher throughput than Actix Web (Rust), 66.8% higher than Fiber v3, and 121.3% higher than Echo at peak load

Throughput at All Connection Levels

Framework 30 conn 500 conn 5,000 conn 8,000 conn
ALOS HTTP 165,573 240,707 220,624 194,726
Actix Web Rust 156,699 165,165 157,741 111,811
Fiber v3 133,460 144,342 124,626 109,951
Echo 109,761 108,755 81,854 39,198
Iris 106,822 111,138 81,381 80,326
Gin 104,843 113,220 97,740 87,691

Latency

Lower is better — average response time at 30 concurrent connections:

Average Latency (30 connections)

ALOS HTTP Winner
88µs
88.11 µs
Actix Web Rust
272µs
272.33 µs
Fiber v3
265µs
265.23 µs
Echo
448µs
448.37 µs
Gin
440µs
440.28 µs
Iris
481µs
480.58 µs
ALOS HTTP responds 67.6% faster than Actix Web (Rust), 66.8% faster than Fiber v3, and 81.7% faster than Iris at low concurrency

Avg Latency at All Connection Levels

Framework 30 conn 500 conn 5,000 conn 8,000 conn
ALOS HTTP 88.11 µs 1.50 ms 17.76 ms 42.16 ms
Actix Web Rust 272.33 µs 3.11 ms 44.51 ms 71.59 ms
Fiber v3 265.23 µs 4.99 ms 45.80 ms 90.53 ms
Echo 448.37 µs 7.85 ms 58.38 ms 181.44 ms
Gin 440.28 µs 7.34 ms 55.93 ms 106.85 ms
Iris 480.58 µs 7.33 ms 57.18 ms 110.81 ms

Max Latency (Worst-Case)

Framework 30 conn 500 conn 5,000 conn 8,000 conn
ALOS HTTP 3.93 ms 137.84 ms 1.43 s 2.00 s
Echo 9.77 ms 427.27 ms 783.82 ms 2.00 s
Gin 11.76 ms 289.74 ms 994.74 ms 2.00 s
Fiber v3 7.76 ms 238.60 ms 1.24 s 2.00 s
Iris 14.09 ms 318.54 ms 682.45 ms 1.99 s
Actix Web Rust 45.14 ms 136.69 ms 1.43 s 2.00 s

Transfer Rate

Data throughput in megabytes per second at all connection levels:

Peak Transfer Rate (500 connections)

ALOS HTTP Winner
31.9 MB
31.91 MB/s
Actix Web Rust
19.4 MB
19.37 MB/s
Fiber v3
16.9 MB
16.93 MB/s
Gin
14.9 MB
14.90 MB/s
Iris
14.7 MB
14.73 MB/s
Echo
12.9 MB
12.86 MB/s
ALOS HTTP pushes 64.7% more data than Actix Web (Rust), 88.5% more than Fiber v3, and 148.1% more than Echo per second

Transfer/sec at All Connection Levels

Framework 30 conn 500 conn 5,000 conn 8,000 conn
ALOS HTTP 21.95 MB 31.91 MB 29.25 MB 25.81 MB
Actix Web Rust 18.38 MB 19.37 MB 18.50 MB 13.12 MB
Fiber v3 15.66 MB 16.93 MB 14.62 MB 12.90 MB
Iris 14.16 MB 14.73 MB 10.79 MB 10.65 MB
Gin 13.80 MB 14.90 MB 12.86 MB 11.54 MB
Echo 12.98 MB 12.86 MB 9.68 MB 4.64 MB

Full Rankings

Complete results from all tested frameworks at peak throughput (500 connections), ranked by requests/sec:

# Framework Requests/sec Avg Latency Transfer/sec vs ALOS
🥇 ALOS HTTP 240,707 1.50 ms 31.91 MB/s
🥈 Actix Web Rust 165,165 3.11 ms 19.37 MB/s -31.4%
🥉 Fiber v3 144,342 4.99 ms 16.93 MB/s -40.0%
4 Gin 113,220 7.34 ms 14.90 MB/s -53.0%
5 Iris 111,138 7.33 ms 14.73 MB/s -53.8%
6 Echo 108,755 7.85 ms 12.86 MB/s -54.8%

Router Benchmarks

Micro-benchmarks comparing the ALOS radix-tree router against four alternative routing strategies. All tests use go test -bench on the same machine with zero allocations as the target.

Five router implementations tested: ALOS Router (optimized radix tree with SoA hash table), Regex Router (compiled regexp per route), Trie Router (segment-based trie), Map Router (Go map with segment splitting), and Linear Router (brute-force linear scan).

Static Routes

Path ALOS Trie Map Regex Linear
/ 7.0 ns 9.1 ns 28.1 ns 82.4 ns 44.4 ns
/users 8.9 ns 12.1 ns 28.2 ns 131 ns 52.8 ns
/api/v1/repos 9.1 ns 18.1 ns 28.9 ns 393 ns 157 ns
/api/v1/health 9.1 ns 19.3 ns 29.5 ns 702 ns 210 ns
/api/v2/status 12.4 ns 19.1 ns 29.3 ns 845 ns 262 ns
ALOS resolves static routes in 7–12 ns regardless of depth via SoA hash table lookup — 2× faster than Trie, 3× faster than Map

Parametric Routes

Pattern ALOS Trie Map Regex Linear
1 param 18.8 ns 63.1 ns 171 ns 254 ns 190 ns
2 params 23.1 ns 111 ns 314 ns 510 ns 333 ns
3 params 33.6 ns 195 ns 733 ns 1,064 ns 807 ns
Deep (4 segments) 35.5 ns 193 ns 1,267 ns 1,956 ns 1,582 ns
ALOS extracts parameters with zero allocations using a fixed-size param array — 3–5× faster than Trie, 13–55× faster than Regex

Mixed Workload

Realistic traffic mix of static, parametric, and wildcard lookups cycled round-robin.

Regex
952 ns
951.6 ns/op
Linear
342 ns
341.5 ns/op
Map
273 ns
273.4 ns/op
Trie
104 ns
104.1 ns/op
ALOS Winner
17.5 ns
17.48 ns/op
Under realistic mixed traffic, ALOS is 6× faster than Trie and 54× faster than Regex

Wildcard / Catch-All

Matching /files/static/images/logo.png against a /files/*filepath catch-all route.

Regex
1,765 ns
1,765 ns/op
Map
391 ns
391.0 ns/op
Linear
380 ns
379.5 ns/op
Trie
72.5 ns
72.47 ns/op
ALOS Winner
19.8 ns
19.84 ns/op
ALOS resolves catch-all routes in under 20 ns3.7× faster than Trie, 89× faster than Regex

Large Route Table (400 routes)

Stress test with 400 routes across 5 API versions, 10 resources, and 4 HTTP methods.

Scenario ALOS Trie Map Regex Linear
Static Hit 12.3 ns 21.4 ns 31.7 ns 1,016 ns 646 ns
Param Hit 30.2 ns 61.4 ns 643 ns 2,625 ns 1,141 ns
Miss 11.5 ns 10.4 ns 506 ns 4,379 ns 948 ns
With 400 routes, ALOS static lookups stay at 12 ns thanks to O(1) hash table — param hits are 2× faster than Trie and 87× faster than Regex

Full Router Rankings

# Router Static (avg) 1-Param Mixed Large Table Allocs
🥇 ALOS Router 9.1 ns 18.8 ns 17.5 ns 12.3 ns 0
🥈 Trie Router 15.5 ns 63.1 ns 104 ns 21.4 ns 0–3
🥉 Map Router 28.8 ns 171 ns 273 ns 31.7 ns 0–17
4 Linear Router 138 ns 190 ns 342 ns 646 ns 1–16
5 Regex Router 410 ns 254 ns 952 ns 1,016 ns 1–3
ESC