Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frameworks/fasthttp/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"display_name": "fasthttp",
"language": "V",
"type": "production",
"type": "engine",
"engine": "epoll",
"description": "fasthttp is a raw multi-threaded epoll HTTP server in V's standard library (non-blocking, SO_REUSEPORT, one worker per core). Handlers return raw response bytes. JSON is built in a single allocation without per-request reflection (precomputed prefixes); async-db uses the stdlib db.pg ConnectionPool sized from DATABASE_MAX_CONN. Pinned V 0.5.1. baseline is not subscribed: the fasthttp server parses each recv() in one shot and does not reassemble TCP-fragmented requests, which baseline validation requires.",
"repo": "https://github.com/vlang/v",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/pico/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"display_name": "pico",
"language": "V",
"type": "production",
"type": "engine",
"engine": "picoev",
"description": "A raw V server on the picoev non-blocking event loop + picohttpparser (both stdlib). One process per core shares the listen socket via SO_REUSEPORT. JSON is serialized manually (precomputed prefixes, no per-request reflection). Pinned V 0.5.1. DB profiles are not subscribed: picoev is a single-threaded event loop and the stdlib db.pg driver is blocking, which would stall the loop. baseline is not subscribed: picoev parses each recv() in one shot and does not reassemble TCP-fragmented requests, which baseline validation requires.",
"repo": "https://github.com/vlang/v",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/vanilla/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"display_name": "vanilla",
"language": "V",
"type": "production",
"type": "engine",
"engine": "epoll",
"description": "vanilla is a minimalist, high-performance HTTP server written in V: multi-threaded, non-blocking epoll I/O, lock-free, copy-free, SO_REUSEPORT. Handlers are pure (request)->[]u8 returning raw response bytes. JSON is built in a single allocation with precomputed prefixes (no per-request reflection); json-comp gzips on Accept-Encoding; static assets are preloaded into memory; fortunes renders the DB rows + a runtime row with HTML escaping; async-db uses the stdlib db.pg ConnectionPool. Pinned V 0.5.1 (prebuilt release). crud uses an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update) \u2014 no Redis required.",
"repo": "https://github.com/enghitalo/vanilla",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/veb/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"display_name": "veb",
"language": "V",
"type": "production",
"type": "engine",
"engine": "veb",
"description": "veb is the web framework in V's standard library (multi-threaded, built-in HTTP/1.1 server). JSON responses are built without per-request reflection (precomputed item prefixes + manual serialization); async-db uses the stdlib db.pg channel-based ConnectionPool sized from DATABASE_MAX_CONN. Built with -prod on a pinned V 0.5.1. Note: the baseline profile is not subscribed because veb does not decode chunked request bodies.",
"repo": "https://github.com/vlang/v",
Expand Down
26 changes: 26 additions & 0 deletions site/data/api-16-1024.json
Original file line number Diff line number Diff line change
Expand Up @@ -1293,6 +1293,32 @@
"tpl_static": 0,
"tpl_async_db": 234853
},
{
"framework": "vanilla",
"language": "V",
"rps": 15157,
"avg_latency": "65.25ms",
"p99_latency": "1.29s",
"cpu": "300.4%",
"memory": "73MiB",
"connections": 1024,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "76.29MB/s",
"input_bw": "873.30KB/s",
"reconnects": 45328,
"status_2xx": 227357,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0,
"tpl_baseline": 85169,
"tpl_json": 85305,
"tpl_db": 0,
"tpl_upload": 0,
"tpl_static": 0,
"tpl_async_db": 56883
},
{
"framework": "workerman",
"language": "PHP",
Expand Down
26 changes: 26 additions & 0 deletions site/data/api-4-256.json
Original file line number Diff line number Diff line change
Expand Up @@ -1293,6 +1293,32 @@
"tpl_static": 0,
"tpl_async_db": 93027
},
{
"framework": "vanilla",
"language": "V",
"rps": 23632,
"avg_latency": "9.80ms",
"p99_latency": "216.60ms",
"cpu": "308.7%",
"memory": "66MiB",
"connections": 256,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "118.89MB/s",
"input_bw": "1.33MB/s",
"reconnects": 70831,
"status_2xx": 354485,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0,
"tpl_baseline": 132902,
"tpl_json": 132868,
"tpl_db": 0,
"tpl_upload": 0,
"tpl_static": 0,
"tpl_async_db": 88715
},
{
"framework": "workerman",
"language": "PHP",
Expand Down
60 changes: 60 additions & 0 deletions site/data/async-db-1024.json
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,26 @@
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "fasthttp",
"language": "V",
"rps": 9747,
"avg_latency": "103.22ms",
"p99_latency": "695.80ms",
"cpu": "527.6%",
"memory": "241MiB",
"connections": 1024,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "37.65MB/s",
"input_bw": "666.30KB/s",
"reconnects": 3441,
"status_2xx": 97472,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "fastpysgi-asgi",
"language": "Python",
Expand Down Expand Up @@ -1033,6 +1053,46 @@
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "vanilla",
"language": "V",
"rps": 8626,
"avg_latency": "99.73ms",
"p99_latency": "2.68s",
"cpu": "284.1%",
"memory": "72MiB",
"connections": 1024,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "33.02MB/s",
"input_bw": "589.67KB/s",
"reconnects": 3170,
"status_2xx": 86260,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "veb",
"language": "V",
"rps": 3408,
"avg_latency": "192.85ms",
"p99_latency": "5.00s",
"cpu": "49.7%",
"memory": "34MiB",
"connections": 1024,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "12.96MB/s",
"input_bw": "232.97KB/s",
"reconnects": 1354,
"status_2xx": 34085,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "workerman",
"language": "PHP",
Expand Down
20 changes: 20 additions & 0 deletions site/data/baseline-4096.json
Original file line number Diff line number Diff line change
Expand Up @@ -1524,6 +1524,26 @@
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "vanilla",
"language": "V",
"rps": 329262,
"avg_latency": "2.64ms",
"p99_latency": "2.93ms",
"cpu": "515.0%",
"memory": "67MiB",
"connections": 4096,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "33.59MB/s",
"input_bw": "25.43MB/s",
"reconnects": 0,
"status_2xx": 1646312,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "workerman",
"language": "PHP",
Expand Down
20 changes: 20 additions & 0 deletions site/data/baseline-512.json
Original file line number Diff line number Diff line change
Expand Up @@ -1524,6 +1524,26 @@
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "vanilla",
"language": "V",
"rps": 344666,
"avg_latency": "286us",
"p99_latency": "276us",
"cpu": "524.4%",
"memory": "49MiB",
"connections": 512,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "35.16MB/s",
"input_bw": "26.62MB/s",
"reconnects": 0,
"status_2xx": 1723331,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "workerman",
"language": "PHP",
Expand Down
20 changes: 20 additions & 0 deletions site/data/crud-4096.json
Original file line number Diff line number Diff line change
Expand Up @@ -376,5 +376,25 @@
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "vanilla",
"language": "V",
"rps": 122937,
"avg_latency": "31.78ms",
"p99_latency": "215.10ms",
"cpu": "934.2%",
"memory": "220MiB",
"connections": 4096,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "37.95MB/s",
"input_bw": "10.55MB/s",
"reconnects": 7321,
"status_2xx": 1844057,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
}
]
19 changes: 19 additions & 0 deletions site/data/fortunes-1024.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,5 +112,24 @@
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
},
{
"framework": "vanilla",
"language": "V",
"rps": 3110,
"avg_latency": "6.12ms",
"p99_latency": "21.90ms",
"cpu": "179.3%",
"memory": "63MiB",
"connections": 1024,
"threads": 64,
"duration": "5s",
"pipeline": 1,
"bandwidth": "73.73MB/s",
"reconnects": 0,
"status_2xx": 15552,
"status_3xx": 0,
"status_4xx": 0,
"status_5xx": 0
}
]
18 changes: 16 additions & 2 deletions site/data/frameworks.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,13 @@
"type": "production",
"engine": "uvicorn"
},
"fasthttp": {
"dir": "fasthttp",
"description": "fasthttp is a raw multi-threaded epoll HTTP server in V's standard library (non-blocking, SO_REUSEPORT, one worker per core). Handlers return raw response bytes. JSON is built in a single allocation without per-request reflection (precomputed prefixes); async-db uses the stdlib db.pg ConnectionPool sized from DATABASE_MAX_CONN. Pinned V 0.5.1. baseline is not subscribed: the fasthttp server parses each recv() in one shot and does not reassemble TCP-fragmented requests, which baseline validation requires.",
"repo": "https://github.com/vlang/v",
"type": "engine",
"engine": "epoll"
},
"fastpysgi-asgi": {
"dir": "fastpysgi-asgi",
"description": "An ultra fast WSGI/ASGI server for Python",
Expand Down Expand Up @@ -425,6 +432,13 @@
"type": "production",
"engine": "nginx"
},
"pico": {
"dir": "pico",
"description": "A raw V server on the picoev non-blocking event loop + picohttpparser (both stdlib). One process per core shares the listen socket via SO_REUSEPORT. JSON is serialized manually (precomputed prefixes, no per-request reflection). Pinned V 0.5.1. DB profiles are not subscribed: picoev is a single-threaded event loop and the stdlib db.pg driver is blocking, which would stall the loop. baseline is not subscribed: picoev parses each recv() in one shot and does not reassemble TCP-fragmented requests, which baseline validation requires.",
"repo": "https://github.com/vlang/v",
"type": "engine",
"engine": "picoev"
},
"pingora": {
"dir": "pingora",
"description": "Pingora, Cloudflare's Rust HTTP framework, used as a standalone server with custom handlers for /baseline11 and preloaded /static files.",
Expand Down Expand Up @@ -727,14 +741,14 @@
"dir": "vanilla",
"description": "vanilla is a minimalist, high-performance HTTP server written in V: multi-threaded, non-blocking epoll I/O, lock-free, copy-free, SO_REUSEPORT. Handlers are pure (request)->[]u8 returning raw response bytes. JSON is built in a single allocation with precomputed prefixes (no per-request reflection); json-comp gzips on Accept-Encoding; static assets are preloaded into memory; fortunes renders the DB rows + a runtime row with HTML escaping; async-db uses the stdlib db.pg ConnectionPool. Pinned V 0.5.1 (prebuilt release). crud uses an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update) \u2014 no Redis required.",
"repo": "https://github.com/enghitalo/vanilla",
"type": "production",
"type": "engine",
"engine": "epoll"
},
"veb": {
"dir": "veb",
"description": "veb is the web framework in V's standard library (multi-threaded, built-in HTTP/1.1 server). JSON responses are built without per-request reflection (precomputed item prefixes + manual serialization); async-db uses the stdlib db.pg channel-based ConnectionPool sized from DATABASE_MAX_CONN. Built with -prod on a pinned V 0.5.1. Note: the baseline profile is not subscribed because veb does not decode chunked request bodies.",
"repo": "https://github.com/vlang/v",
"type": "production",
"type": "engine",
"engine": "veb"
},
"workerman-websocket": {
Expand Down
Loading
Loading