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/araara-standard/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"mode": "standard",
"description": "araara - an OCaml 5 web stack built on HCS, using HCS server defaults where possible for the HttpArena harness. Eio, radix-trie routing, Phoenix-style plugs, Postgres via repodb, gzip/zstd compression. HTTP/3 and gRPC are not implemented.",
"repo": "https://araara.ml",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/araara/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"mode": "tuned",
"description": "araara - an OCaml 5 web stack built on HCS, Eio, a zero-copy sans-I/O HTTP codec, radix-trie routing, Phoenix-style plugs, Postgres via repodb, and gzip/zstd compression. HTTP/3 and gRPC are not implemented.",
"repo": "https://araara.ml",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/fasthttp/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"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). It uses fasthttp's zero-copy append handler (write the raw response straight into the connection's reused buffer), lock-free per-worker state (make_state), deterministic request framing that reassembles TCP-fragmented AND chunked requests (so baseline is now subscribed), and sendfile(2) for static bodies. JSON is built in a single allocation with precomputed prefixes (no per-request reflection); json-comp gzips on Accept-Encoding with a process-shared cache; static assets are streamed via sendfile with a preloaded MIME/size table; crud is an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update); fortunes renders the DB rows + a runtime row with HTML escaping; async-db/crud/fortunes use the stdlib db.pg pooled Go-style DB (blocking queries on the worker thread — fasthttp has no async watch reactor yet). Built on pinned V master 84a76d791 (the fasthttp vanilla-architecture refactor, vlang/v#27771) with the default GC (Boehm). json-tls is not subscribed: the stdlib fasthttp server has no TLS backend.",
"repo": "https://github.com/vlang/v",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/pico/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"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). Built with the default GC on pinned V master c0624b274. 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",
"enabled": true,
"enabled": false,
"tests": [
"pipelined",
"json"
Expand Down
2 changes: 1 addition & 1 deletion frameworks/symfony-spawn-franken/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"engine": "frankenphp",
"description": "Symfony with symfony-spawn bundle: coroutine-per-request isolation via TrueAsync PHP core, Doctrine DBAL connection pooling, and FrankenPHP.",
"repo": "https://github.com/yangusik/symfony-spawn",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/vanilla-epoll/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"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; json-tls terminates TLS 1.3 (Mbed TLS 4) on :8081 with ALPN http/1.1, reusing the same allocation-free /json serializer; 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",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/vanilla-h2c/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"engine": "epoll",
"description": "HTTP/2 cleartext (h2c, prior-knowledge) on vanilla's conn-mode seam: one epoll engine drives the RFC 9113 state machine behind a ConnHandler. The client's PRI * HTTP/2.0 preface parses as an ordinary request; the HTTP handler flips the connection over (core.queue_takeover), appends the server SETTINGS preface, and every later burst is fed to the http2 machine instead of the HTTP/1.1 parser. The http2 module is a self-contained RFC 9113/7541 codec: HPACK (static + dynamic table, canonical Huffman decode, decoded-block ceiling), frame codec, and a stream state machine with send-side flow control, hardened against a live h2spec CI gate. Requests surface only when COMPLETE (END_STREAM); responses are HPACK-encoded HEADERS + DATA. The :8082 listener is h2c-only — a plain HTTP/1.1 request is refused 505, never a 200, so the benchmark cannot silently measure h1 throughput. /json reuses the vanilla /json shape (same dataset, precomputed per-item prefixes, total = price*quantity*m). Multi-threaded, SO_REUSEPORT, lock-free, -gc none. Pinned V 0.5.2 (prebuilt from source).",
"repo": "https://github.com/enghitalo/vanilla",
"enabled": true,
"enabled": false,
"tests": [
"baseline-h2c",
"json-h2c"
Expand Down
2 changes: 1 addition & 1 deletion frameworks/vanilla-io_uring/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"engine": "io_uring",
"description": "vanilla is a minimalist, high-performance HTTP server written in V: multi-threaded, non-blocking io_uring I/O, lock-free, copy-free, SO_REUSEPORT. This entry is the vanilla-epoll entry's async handler verbatim, running on the io_uring async runtime (enghitalo/vanilla#99): DB queries park on the PG socket via a oneshot IORING_OP_POLL_ADD and resume on the ring — never blocking the worker. JSON is built in a single allocation with precomputed prefixes (no per-request reflection); json-comp gzips on Accept-Encoding; json-tls serves /json over HTTP/1.1 + TLS 1.3 on :8081 via the lib's epoll backend (the io_uring backend has no TLS) with kTLS record offload where present; static assets are preloaded into memory; fortunes renders the DB rows + a runtime row with HTML escaping; async-db/crud/fortunes use the native async pg_async driver with per-worker pipelined pools. Built with the default GC on pinned V master (built from source). crud uses an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update) — no Redis required.",
"repo": "https://github.com/enghitalo/vanilla",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/vanilla-ws/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"engine": "epoll",
"description": "WebSocket echo on vanilla's conn-mode seam: one epoll engine, two protocols on the same connection. The HTTP handler validates the RFC 6455 upgrade as a pure function, appends the 101 and hands the connection over (core.queue_takeover); from then on every readable burst is fed to a ConnHandler instead of the HTTP/1.1 state machine. The websocket module is a pure RFC 6455 codec (accept-key, frame-head parsing, in-place unmasking, unmasked server-frame writers). Read buffering/compaction, batched flushes and EPOLLOUT backpressure are the engine's own, so a pipelined burst of frames is drained in one handler call and coalesced into one write. Multi-threaded, SO_REUSEPORT, lock-free, -gc none.",
"repo": "https://github.com/enghitalo/vanilla",
"enabled": true,
"enabled": false,
"tests": [
"echo-ws",
"echo-ws-pipeline"
Expand Down
2 changes: 1 addition & 1 deletion frameworks/veb/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"engine": "veb",
"description": "veb is the web framework in V's standard library, now running on the parallel fasthttp backend (multi-threaded, SO_REUSEPORT epoll, zero-copy append handler). Its deterministic request framing reassembles TCP-fragmented requests and decodes chunked bodies, so baseline is subscribed (the old single-threaded backend could not). JSON responses are built without per-request reflection (precomputed item prefixes + manual serialization); json-comp gzips on Accept-Encoding with a process-shared cache; static assets are served via veb's static handler (sendfile + MIME) mounted at /static/; crud is an in-memory cache-aside (X-Cache MISS/HIT, invalidated on update); fortunes renders the DB rows + a runtime row with HTML escaping; async-db/crud/fortunes use the stdlib db.pg pooled Go-style DB. Built on pinned V master 84a76d791 (the fasthttp vanilla-architecture refactor, vlang/v#27771) with the default GC (Boehm). json-tls is not subscribed: it needs a second TLS listener on :8081 (a separate OpenSSL path) not wired here.",
"repo": "https://github.com/vlang/v",
"enabled": true,
"enabled": false,
"tests": [
"baseline",
"pipelined",
Expand Down
2 changes: 1 addition & 1 deletion frameworks/workerman-websocket/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"engine": "workerman",
"description": "An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols.",
"repo": "https://github.com/walkor/Workerman",
"enabled": true,
"enabled": false,
"tests": [
"echo-ws",
"echo-ws-pipeline"
Expand Down
Loading
Loading