Skip to main content

Benchmark snapshot

Manual snapshot measured on Apple M4 Pro with Go 1.26.

Throughput
~4.3 Gbit/s
Best full-cycle path
Latency
~2.6 μs
Lowest full-cycle path
Fast-path lookup
~4-15 ns
Flat through 10k peers
Allocs/op
0
Hot path

Full-cycle dataplane

Encrypt, lookup, validate, decrypt, handoff. Upper-bound for the dataplane core, not end-to-end VPN throughput.

PathLatencyThroughputAllocs/op
UDPClient -> Server~2.7 μs~4.3 Gbit/s0
UDPServer -> Client~2.6 μs~4.3 Gbit/s0
TCPClient -> Server~2.6 μs~4.3 Gbit/s0
TCPServer -> Client~2.6 μs~4.3 Gbit/s0

Multi-peer UDP scaling

Aggregate throughput with work spread across many peers, not one serialized send lane.

UDP Client -> Server

Aggregate throughput
1 peers~3.4 Gbit/s
64 peers~34.6 Gbit/s
1024 peers~34.2 Gbit/s

UDP Server -> Client

Aggregate throughput
1 peers~3.4 Gbit/s
64 peers~32.5 Gbit/s
1024 peers~31.9 Gbit/s

Lookup and serialization

Internal-IP, allowed-host, and route-ID lookups stay flat. Misses and per-peer serialization are the real pressure points.

Lookup1 peers100 peers1000 peers10000 peers
Exact internal lookup~8.7 ns~9.0 ns~9.3 ns~9.3 ns
Allowed host lookup~13.5 ns~14.9 ns~13.4 ns~14.1 ns
Route ID lookup~3.9 ns~6.4 ns~6.0 ns~6.6 ns
Miss path~35.4 ns~699 ns~9.0 μs~89.5 μs
Egress lane
~4.7 ns -> ~80 ns
Uncontended to contended sends
Miss path
Linear
~35 ns at 1 peer -> ~89.5 μs at 10k peers