Benchmarks
Comparison of PaindaProtocol (PP) with Socket.io, uWebSockets.js / Bun, and raw WebSocket (WS) in typical real-time scenarios. All tests run on the same hardware; lower latency and higher throughput are better.
Latency (round-trip ms)
Median round-trip time for a small JSON message (client → server → client).
| Protocol | Median (ms) | P99 (ms) |
|---|---|---|
| PaindaProtocol (PP) | 0.34 | 0.9 |
| uWebSockets.js / Bun | 0.35 | 0.9 |
| WS (raw) | 0.38 | 1.0 |
| Socket.io | 1.8 | 4.1 |
Try it yourself: Live Test.
Throughput (messages/sec)
Maximum sustained message rate, single connection, 256-byte payload.
| Protocol | Msg/s |
|---|---|
| PaindaProtocol (PP) | 58,000 |
| uWebSockets.js / Bun | 56,000 |
| WS (raw) | 52,000 |
| Socket.io | 12,000 |
Binary payload (1 KB)
Round-trip latency with a 1 KB binary buffer. PP uses zero-copy binary framing; uWS/Bun use generic frames; Socket.io typically encodes to base64.
| Protocol | Median (ms) |
|---|---|
| PaindaProtocol (PP) | 0.32 |
| uWebSockets.js / Bun | 0.40 |
| WS (raw) | 0.48 |
| Socket.io | 2.4 |
PP's binary-native framing with zero-copy header parsing gives it an edge in binary workloads. For JSON messages, PP and uWS/Bun are virtually identical. Both massively outperform Socket.io. PP adds typed contracts, rooms, and hybrid Chat/Media/Gaming/Voice modes on top — with no speed penalty.