Web frameworks compared
Four frameworks on three measures that share no unit: requests per second, memory and cold start on a logarithmic axis. One panel per measure, each with its own value axis, unit and verdict, over the same categories. On a phone the panels stack in one column. Illustrative values.
Web frameworks compared
examples/framework-benchmarks.json{
"schemaVersion": 1,
"type": "multiples",
"title": "Web frameworks compared",
"source": "Illustrative values",
"width": 960,
"height": 420,
"showValues": true,
"columns": 3,
"categories": [
"Rust (Axum)",
"Go (Gin)",
"Node (Fastify)",
"Python (FastAPI)"
],
"panes": [
{
"title": "Requests per second",
"note": "higher is better",
"values": [
118000,
96000,
64000,
18000
],
"valueAxis": {
"unit": "req/s",
"thousandsSeparator": true
}
},
{
"title": "Memory under load",
"note": "lower is better",
"values": [
24,
41,
118,
96
],
"valueAxis": {
"unit": "MB"
}
},
{
"title": "Cold start",
"note": "lower is better",
"values": [
3,
5,
45,
210
],
"valueAxis": {
"unit": "ms",
"scale": "log"
}
}
],
"mobile": {
"width": 360,
"height": 960,
"columns": 1
}
}Source: Illustrative values
Show chart data
| Category | Requests per second (req/s) | Memory under load (MB) | Cold start (ms) |
|---|---|---|---|
| Rust (Axum) | 118,000 | 24 | 3 |
| Go (Gin) | 96,000 | 41 | 5 |
| Node (Fastify) | 64,000 | 118 | 45 |
| Python (FastAPI) | 18,000 | 96 | 210 |