diff --git a/frameworks/zix-grpc/Dockerfile b/frameworks/zix-grpc/Dockerfile index 3882ac943..adf518c71 100644 --- a/frameworks/zix-grpc/Dockerfile +++ b/frameworks/zix-grpc/Dockerfile @@ -57,15 +57,8 @@ RUN set -eu; \ -Dcpu="${ZIG_CPU}+aes+pclmul+adx" \ --release=fast --summary failures; -# Self-signed Ed25519 cert generated at image build, baked at /etc/zix-tls. -RUN set -eu; \ - mkdir -p /etc/zix-tls; \ - openssl genpkey -algorithm ED25519 -out /etc/zix-tls/server.key; \ - openssl req -new -x509 -key /etc/zix-tls/server.key -out /etc/zix-tls/server.cert \ - -days 3650 -subj "/CN=localhost" FROM alpine:3.20 COPY --from=build /server/zig-out/bin/zix-grpc /zix-grpc -COPY --from=build /etc/zix-tls /etc/zix-tls EXPOSE 8080 8443/tcp ENTRYPOINT ["/zix-grpc"] diff --git a/frameworks/zix-grpc/src/main.zig b/frameworks/zix-grpc/src/main.zig index e26889333..9e9b487f5 100644 --- a/frameworks/zix-grpc/src/main.zig +++ b/frameworks/zix-grpc/src/main.zig @@ -7,8 +7,8 @@ //! //! ONE server, two listeners through config.tls_port (dual listener): //! - h2c cleartext on PORT (8080). Serves unary-grpc and stream-grpc. -//! - gRPC over TLS 1.3 on TLS_PORT (8443), ALPN h2, self-signed Ed25519 cert -//! baked at /etc/zix-tls, terminated on the same per-core .URING workers +//! - gRPC over TLS 1.3 on TLS_PORT (8443), ALPN h2, the shared RSA cert +//! mounted at /certs, terminated on the same per-core .URING workers //! (no second launch, no doubled workers or fd tables). //! Serves unary-grpc-tls and stream-grpc-tls. //! diff --git a/frameworks/zix-grpc/src/shared/paths.zig b/frameworks/zix-grpc/src/shared/paths.zig index 07354fe3d..ce9989e95 100644 --- a/frameworks/zix-grpc/src/shared/paths.zig +++ b/frameworks/zix-grpc/src/shared/paths.zig @@ -1,7 +1,7 @@ //! Where the fixtures and the certificate are, for every module that needs one. //! //! Note: -//! - Constants, the way the HttpArena entries name /data and /etc/zix-tls. The +//! - Constants, the way the HttpArena entries name /data and /certs. The //! entry names the path and the harness guarantees it: there a Dockerfile and //! a compose mount put the files in place @@ -9,5 +9,5 @@ pub const DATA_DIR: []const u8 = "/data"; pub const DATASET: []const u8 = "/data/dataset.json"; -pub const TLS_CERT: []const u8 = "/etc/zix-tls/server.cert"; -pub const TLS_KEY: []const u8 = "/etc/zix-tls/server.key"; +pub const TLS_CERT: []const u8 = "/certs/server.crt"; +pub const TLS_KEY: []const u8 = "/certs/server.key"; diff --git a/frameworks/zix-http2/Dockerfile b/frameworks/zix-http2/Dockerfile index e8861129b..6e561ad14 100644 --- a/frameworks/zix-http2/Dockerfile +++ b/frameworks/zix-http2/Dockerfile @@ -58,15 +58,8 @@ RUN set -eu; \ esac; \ zig build -Dtarget="${ZIG_TARGET}" -Dcpu="${ZIG_CPU}+aes+pclmul+adx" --release=fast -# Self-signed Ed25519 cert generated at image build, baked at /etc/zix-tls. -RUN set -eu; \ - mkdir -p /etc/zix-tls; \ - openssl genpkey -algorithm ED25519 -out /etc/zix-tls/server.key; \ - openssl req -new -x509 -key /etc/zix-tls/server.key -out /etc/zix-tls/server.crt \ - -days 3650 -subj "/CN=localhost" FROM alpine:3.20 COPY --from=build /server/zig-out/bin/zix-http2 /zix-http2 -COPY --from=build /etc/zix-tls /etc/zix-tls EXPOSE 8443/tcp 8443/udp ENTRYPOINT ["/zix-http2"] diff --git a/frameworks/zix-http2/src/main.zig b/frameworks/zix-http2/src/main.zig index cebbae0bd..23e08c6b8 100644 --- a/frameworks/zix-http2/src/main.zig +++ b/frameworks/zix-http2/src/main.zig @@ -6,7 +6,7 @@ //! (shared-nothing per-core io_uring, one SO_REUSEPORT //! listener plus ring per CPU). Serves baseline-h2c and json-h2c. //! - h2 over TLS 1.3 on TLS_PORT -//! (ALPN h2, self-signed Ed25519 cert at /etc/zix-tls), +//! (ALPN h2, the RSA cert mounted at /certs), //! terminated on the same per-core rings: no second launch, //! no doubled workers or fd tables. Serves baseline-h2 and static-h2. //! @@ -35,8 +35,8 @@ const PORT: u16 = 8082; const DISPATCH_MODEL: zix.Http2.DispatchModel = .URING; const TLS_PORT: u16 = 8443; -const TLS_CERT_DEFAULT: []const u8 = "/etc/zix-tls/server.crt"; -const TLS_KEY_DEFAULT: []const u8 = "/etc/zix-tls/server.key"; +const TLS_CERT_DEFAULT: []const u8 = "/certs/server.crt"; +const TLS_KEY_DEFAULT: []const u8 = "/certs/server.key"; // --------------------------------------------------------- // diff --git a/frameworks/zix-http3/Dockerfile b/frameworks/zix-http3/Dockerfile index 661e75e4f..38bbed959 100644 --- a/frameworks/zix-http3/Dockerfile +++ b/frameworks/zix-http3/Dockerfile @@ -58,15 +58,8 @@ RUN set -eu; \ esac; \ zig build -Dtarget="${ZIG_TARGET}" -Dcpu="${ZIG_CPU}+aes+pclmul+adx" --release=fast -# Self-signed Ed25519 cert generated at image build, baked at /etc/zix-tls. -RUN set -eu; \ - mkdir -p /etc/zix-tls; \ - openssl genpkey -algorithm ED25519 -out /etc/zix-tls/server.key; \ - openssl req -new -x509 -key /etc/zix-tls/server.key -out /etc/zix-tls/server.crt \ - -days 3650 -subj "/CN=localhost" FROM alpine:3.20 COPY --from=build /server/zig-out/bin/zix-http3 /zix-http3 -COPY --from=build /etc/zix-tls /etc/zix-tls EXPOSE 8443/tcp 8443/udp ENTRYPOINT ["/zix-http3"] diff --git a/frameworks/zix-http3/src/main.zig b/frameworks/zix-http3/src/main.zig index 8ee95fc8e..f89be5529 100644 --- a/frameworks/zix-http3/src/main.zig +++ b/frameworks/zix-http3/src/main.zig @@ -3,7 +3,7 @@ //! zix.Http3 (.URING) against the HttpArena HTTP/3 suite //! (baseline-h3, static-h3). //! QUIC over UDP on PORT, TLS 1.3 inside the handshake -//! (baked Ed25519 cert at /etc/zix-tls), ALPN h3 negotiated by the engine. +//! (the RSA cert mounted at /certs), ALPN h3 negotiated by the engine. //! /baseline2 sums the query integers, /static serves /data/static //! with .br / .gz negotiation against the request accept-encoding. //! A one-worker https responder on TCP 8443 answers the bench readiness @@ -27,8 +27,8 @@ const WORKERS: usize = 0; // arrives on TCP 8443 (the two coexist, distinct sockets). const PROBE_TCP_PORT: u16 = 8443; -const TLS_CERT_DEFAULT: []const u8 = "/etc/zix-tls/server.crt"; -const TLS_KEY_DEFAULT: []const u8 = "/etc/zix-tls/server.key"; +const TLS_CERT_DEFAULT: []const u8 = "/certs/server.crt"; +const TLS_KEY_DEFAULT: []const u8 = "/certs/server.key"; // --------------------------------------------------------- // diff --git a/frameworks/zix-ws/Dockerfile b/frameworks/zix-ws/Dockerfile index 7e0ef8154..2588043c8 100644 --- a/frameworks/zix-ws/Dockerfile +++ b/frameworks/zix-ws/Dockerfile @@ -57,12 +57,6 @@ RUN set -eu; \ -Dcpu="${ZIG_CPU}+aes+pclmul+adx" \ --release=fast --summary failures; -# Self-signed Ed25519 cert generated at image build, baked at /etc/zix-tls. -RUN set -eu; \ - mkdir -p /etc/zix-tls; \ - openssl genpkey -algorithm ED25519 -out /etc/zix-tls/server.key; \ - openssl req -new -x509 -key /etc/zix-tls/server.key -out /etc/zix-tls/server.cert \ - -days 3650 -subj "/CN=localhost" FROM alpine:3.20 COPY --from=build /server/zig-out/bin/zix-ws /zix-ws diff --git a/frameworks/zix/Dockerfile b/frameworks/zix/Dockerfile index f7828224f..e7a367efe 100644 --- a/frameworks/zix/Dockerfile +++ b/frameworks/zix/Dockerfile @@ -57,15 +57,8 @@ RUN set -eu; \ -Dcpu="${ZIG_CPU}+aes+pclmul+adx" \ --release=fast --summary failures; -# Self-signed Ed25519 cert generated at image build, baked at /etc/zix-tls. -RUN set -eu; \ - mkdir -p /etc/zix-tls; \ - openssl genpkey -algorithm ED25519 -out /etc/zix-tls/server.key; \ - openssl req -new -x509 -key /etc/zix-tls/server.key -out /etc/zix-tls/server.cert \ - -days 3650 -subj "/CN=localhost" FROM alpine:3.20 COPY --from=build /server/zig-out/bin/zix-http1 /zix-http1 -COPY --from=build /etc/zix-tls /etc/zix-tls EXPOSE 8080 8081 ENTRYPOINT ["/zix-http1"] diff --git a/frameworks/zix/meta.json b/frameworks/zix/meta.json index 907c0ba8c..c0670d5d5 100644 --- a/frameworks/zix/meta.json +++ b/frameworks/zix/meta.json @@ -5,12 +5,11 @@ "engine": "zix.Http1 URING Dispatch Model", "description": "HTTP/1.1 on the zix.Http1 raw engine, .URING dispatch: per-worker SO_REUSEPORT io_uring loops, comptime Router, staged send sink. Dual listener: cleartext 8080, TLS 1.3 on 8081. Database routes run on engine-worker lanes, each worker pumping its own pipelined postgrez connections on its ring with named prepared statements. No response cache and no startup pre-serialization anywhere: json serializes every field per request and compresses per request, static opens the file per request. The crud row cache is the 200 ms cache-aside the crud profile itself defines.", "repo": "https://github.com/prothegee/zix", - "enabled": false, + "enabled": true, "tests": [ "baseline", "pipelined", "limited-conn", - "upload", "static", "static-tls", "json", diff --git a/frameworks/zix/src/shared/paths.zig b/frameworks/zix/src/shared/paths.zig index 07354fe3d..ce9989e95 100644 --- a/frameworks/zix/src/shared/paths.zig +++ b/frameworks/zix/src/shared/paths.zig @@ -1,7 +1,7 @@ //! Where the fixtures and the certificate are, for every module that needs one. //! //! Note: -//! - Constants, the way the HttpArena entries name /data and /etc/zix-tls. The +//! - Constants, the way the HttpArena entries name /data and /certs. The //! entry names the path and the harness guarantees it: there a Dockerfile and //! a compose mount put the files in place @@ -9,5 +9,5 @@ pub const DATA_DIR: []const u8 = "/data"; pub const DATASET: []const u8 = "/data/dataset.json"; -pub const TLS_CERT: []const u8 = "/etc/zix-tls/server.cert"; -pub const TLS_KEY: []const u8 = "/etc/zix-tls/server.key"; +pub const TLS_CERT: []const u8 = "/certs/server.crt"; +pub const TLS_KEY: []const u8 = "/certs/server.key"; diff --git a/site/data/results/zix.json b/site/data/results/zix.json new file mode 100644 index 000000000..92b94da47 --- /dev/null +++ b/site/data/results/zix.json @@ -0,0 +1,865 @@ +{ + "framework": "zix", + "results": { + "api-16-1024": { + "framework": "zix", + "language": "Zig", + "rps": 247788, + "avg_latency": "1.40ms", + "p99_latency": "15.20ms", + "cpu": "1097.0%", + "memory": "132MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "1.21GB/s", + "input_bw": "13.94MB/s", + "reconnects": 743334, + "status_2xx": 3716824, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0, + "tpl_baseline": 1393736, + "tpl_json": 1395066, + "tpl_db": 0, + "tpl_upload": 0, + "tpl_static": 0, + "tpl_async_db": 928016 + }, + "api-4-256": { + "framework": "zix", + "language": "Zig", + "rps": 62678, + "avg_latency": "1.22ms", + "p99_latency": "5.58ms", + "cpu": "199.8%", + "memory": "40MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "314.55MB/s", + "input_bw": "3.53MB/s", + "reconnects": 188098, + "status_2xx": 940183, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0, + "tpl_baseline": 352686, + "tpl_json": 352790, + "tpl_db": 0, + "tpl_upload": 0, + "tpl_static": 0, + "tpl_async_db": 234706 + }, + "async-db-1024": { + "framework": "zix", + "language": "Zig", + "rps": 400444, + "avg_latency": "1.98ms", + "p99_latency": "20.40ms", + "cpu": "3183.3%", + "memory": "337MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "1.51GB/s", + "input_bw": "26.73MB/s", + "reconnects": 159686, + "status_2xx": 4004440, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-4096": { + "framework": "zix", + "language": "Zig", + "rps": 4442329, + "avg_latency": "921us", + "p99_latency": "1.19ms", + "cpu": "6427.0%", + "memory": "194MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "279.49MB/s", + "input_bw": "343.16MB/s", + "reconnects": 0, + "status_2xx": 22211648, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-512": { + "framework": "zix", + "language": "Zig", + "rps": 4188550, + "avg_latency": "121us", + "p99_latency": "222us", + "cpu": "6361.8%", + "memory": "133MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "263.62MB/s", + "input_bw": "323.56MB/s", + "reconnects": 0, + "status_2xx": 20942750, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h2-1024": { + "framework": "zix", + "language": "Zig", + "rps": 14090534, + "avg_latency": "3.65ms", + "p99_latency": "99.66ms", + "cpu": "4164.7%", + "memory": "216MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "461.46MB/s", + "reconnects": 0, + "status_2xx": 71157200, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h2-256": { + "framework": "zix", + "language": "Zig", + "rps": 14076613, + "avg_latency": "1.09ms", + "p99_latency": "17.29ms", + "cpu": "4108.2%", + "memory": "120MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "458.26MB/s", + "reconnects": 0, + "status_2xx": 70664600, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h2c-1024": { + "framework": "zix", + "language": "Zig", + "rps": 14569901, + "avg_latency": "3.78ms", + "p99_latency": "58.31ms", + "cpu": "4171.5%", + "memory": "126MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "478.11MB/s", + "reconnects": 0, + "status_2xx": 73723700, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h2c-256": { + "framework": "zix", + "language": "Zig", + "rps": 13956726, + "avg_latency": "1.05ms", + "p99_latency": "6.54ms", + "cpu": "3999.4%", + "memory": "106MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "456.17MB/s", + "reconnects": 0, + "status_2xx": 70341900, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h2c-4096": { + "framework": "zix", + "language": "Zig", + "rps": 13411078, + "avg_latency": "14.89ms", + "p99_latency": "58.21ms", + "cpu": "3900.5%", + "memory": "220MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "443.59MB/s", + "reconnects": 0, + "status_2xx": 68396500, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "baseline-h3-64": { + "framework": "zix", + "language": "Zig", + "rps": 9086240, + "avg_latency": "437us", + "p99_latency": "796us", + "cpu": "1281.9%", + "memory": "412MiB", + "connections": 64, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "69.46MB/s", + "reconnects": 0, + "status_2xx": 45522065, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "crud-4096": { + "framework": "zix", + "language": "Zig", + "rps": 823462, + "avg_latency": "4.67ms", + "p99_latency": "22.40ms", + "cpu": "3213.5%", + "memory": "387MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "241.32MB/s", + "input_bw": "70.68MB/s", + "reconnects": 59878, + "status_2xx": 12351944, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-16384": { + "framework": "zix", + "language": "Zig", + "rps": 4254843, + "avg_latency": "3.84ms", + "p99_latency": "4.59ms", + "cpu": "6408.1%", + "memory": "487MiB", + "connections": 16384, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "28.80MB/s", + "reconnects": 0, + "status_2xx": 21274219, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-4096": { + "framework": "zix", + "language": "Zig", + "rps": 4469914, + "avg_latency": "915us", + "p99_latency": "1.20ms", + "cpu": "6419.3%", + "memory": "251MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "29.85MB/s", + "reconnects": 0, + "status_2xx": 22349571, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-512": { + "framework": "zix", + "language": "Zig", + "rps": 4277156, + "avg_latency": "119us", + "p99_latency": "202us", + "cpu": "6402.6%", + "memory": "206MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "28.55MB/s", + "reconnects": 0, + "status_2xx": 21385782, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-limited-4096": { + "framework": "zix", + "language": "Zig", + "rps": 2566106, + "avg_latency": "1.02ms", + "p99_latency": "1.74ms", + "cpu": "5761.4%", + "memory": "280MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "48.68MB/s", + "reconnects": 1282613, + "status_2xx": 12830533, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-limited-512": { + "framework": "zix", + "language": "Zig", + "rps": 2254504, + "avg_latency": "116us", + "p99_latency": "351us", + "cpu": "5259.0%", + "memory": "176MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "42.78MB/s", + "reconnects": 1127295, + "status_2xx": 11272523, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-pipeline-16384": { + "framework": "zix", + "language": "Zig", + "rps": 61907676, + "avg_latency": "4.21ms", + "p99_latency": "8.35ms", + "cpu": "6152.3%", + "memory": "497MiB", + "connections": 16384, + "threads": 64, + "duration": "5s", + "pipeline": 16, + "bandwidth": "413.49MB/s", + "reconnects": 0, + "status_2xx": 309538381, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-pipeline-4096": { + "framework": "zix", + "language": "Zig", + "rps": 66037087, + "avg_latency": "991us", + "p99_latency": "2.00ms", + "cpu": "6239.8%", + "memory": "248MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 16, + "bandwidth": "440.68MB/s", + "reconnects": 0, + "status_2xx": 330185438, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "echo-ws-pipeline-512": { + "framework": "zix", + "language": "Zig", + "rps": 60193061, + "avg_latency": "135us", + "p99_latency": "294us", + "cpu": "6381.1%", + "memory": "211MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 16, + "bandwidth": "401.71MB/s", + "reconnects": 0, + "status_2xx": 300965306, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-4096": { + "framework": "zix", + "language": "Zig", + "rps": 2325200, + "avg_latency": "917us", + "p99_latency": "3.38ms", + "cpu": "6534.2%", + "memory": "287MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "7.78GB/s", + "input_bw": "110.87MB/s", + "reconnects": 464196, + "status_2xx": 11626000, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-comp-16384": { + "framework": "zix", + "language": "Zig", + "rps": 1018808, + "avg_latency": "15.97ms", + "p99_latency": "23.70ms", + "cpu": "6533.4%", + "memory": "527MiB", + "connections": 16384, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "1.74GB/s", + "input_bw": "75.79MB/s", + "reconnects": 195882, + "status_2xx": 5094041, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-comp-4096": { + "framework": "zix", + "language": "Zig", + "rps": 1046581, + "avg_latency": "3.87ms", + "p99_latency": "8.60ms", + "cpu": "6825.8%", + "memory": "212MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "1.79GB/s", + "input_bw": "77.85MB/s", + "reconnects": 208635, + "status_2xx": 5232907, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-comp-512": { + "framework": "zix", + "language": "Zig", + "rps": 955775, + "avg_latency": "511us", + "p99_latency": "2.36ms", + "cpu": "6059.4%", + "memory": "132MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "1.63GB/s", + "input_bw": "71.10MB/s", + "reconnects": 191161, + "status_2xx": 4778877, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-h2c-1024": { + "framework": "zix", + "language": "Zig", + "rps": 6821589, + "avg_latency": "2.42ms", + "p99_latency": "18.67ms", + "cpu": "3891.6%", + "memory": "177MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "22.88GB/s", + "reconnects": 0, + "status_2xx": 34517243, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-h2c-4096": { + "framework": "zix", + "language": "Zig", + "rps": 6746440, + "avg_latency": "11.33ms", + "p99_latency": "104.64ms", + "cpu": "4204.8%", + "memory": "425MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "22.80GB/s", + "reconnects": 0, + "status_2xx": 34406847, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "json-tls-4096": { + "framework": "zix", + "language": "Zig", + "rps": 1845248, + "avg_latency": "1.38ms", + "p99_latency": "109.34ms", + "cpu": "5396.1%", + "memory": "280MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "6.17GB", + "reconnects": 0, + "status_2xx": 9406889, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "limited-conn-4096": { + "framework": "zix", + "language": "Zig", + "rps": 2708192, + "avg_latency": "1.37ms", + "p99_latency": "1.89ms", + "cpu": "5826.4%", + "memory": "236MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "170.47MB/s", + "input_bw": "209.20MB/s", + "reconnects": 1353727, + "status_2xx": 13540964, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "limited-conn-512": { + "framework": "zix", + "language": "Zig", + "rps": 2683418, + "avg_latency": "174us", + "p99_latency": "423us", + "cpu": "5513.5%", + "memory": "131MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "168.83MB/s", + "input_bw": "207.29MB/s", + "reconnects": 1341690, + "status_2xx": 13417092, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "pipelined-4096": { + "framework": "zix", + "language": "Zig", + "rps": 58761616, + "avg_latency": "1.11ms", + "p99_latency": "1.59ms", + "cpu": "6408.9%", + "memory": "193MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 16, + "bandwidth": "3.61GB/s", + "reconnects": 0, + "status_2xx": 293808080, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "pipelined-512": { + "framework": "zix", + "language": "Zig", + "rps": 56503100, + "avg_latency": "144us", + "p99_latency": "285us", + "cpu": "6436.5%", + "memory": "132MiB", + "connections": 512, + "threads": 64, + "duration": "5s", + "pipeline": 16, + "bandwidth": "3.47GB/s", + "reconnects": 0, + "status_2xx": 282515503, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-1024": { + "framework": "zix", + "language": "Zig", + "rps": 222558, + "avg_latency": "4.66ms", + "p99_latency": "82.95ms", + "cpu": "6658.0%", + "memory": "456MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "13.20GB", + "reconnects": 0, + "status_2xx": 1130942, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-4096": { + "framework": "zix", + "language": "Zig", + "rps": 233973, + "avg_latency": "18.06ms", + "p99_latency": "239.55ms", + "cpu": "6617.6%", + "memory": "1.4GiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "13.88GB", + "reconnects": 0, + "status_2xx": 1193344, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-6800": { + "framework": "zix", + "language": "Zig", + "rps": 231573, + "avg_latency": "30.61ms", + "p99_latency": "474.64ms", + "cpu": "6568.0%", + "memory": "2.3GiB", + "connections": 6800, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "13.74GB", + "reconnects": 0, + "status_2xx": 1180896, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-h2-1024": { + "framework": "zix", + "language": "Zig", + "rps": 1650640, + "avg_latency": "16.19ms", + "p99_latency": "169.67ms", + "cpu": "6431.3%", + "memory": "563MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "25.34GB/s", + "reconnects": 0, + "status_2xx": 8335733, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-h2-256": { + "framework": "zix", + "language": "Zig", + "rps": 1692045, + "avg_latency": "3.58ms", + "p99_latency": "60.58ms", + "cpu": "5935.6%", + "memory": "217MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "25.82GB/s", + "reconnects": 0, + "status_2xx": 8494068, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-h3-64": { + "framework": "zix", + "language": "Zig", + "rps": 595586, + "avg_latency": "6.42ms", + "p99_latency": "20.04ms", + "cpu": "3297.5%", + "memory": "412MiB", + "connections": 64, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "9.06GB/s", + "reconnects": 0, + "status_2xx": 2989843, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-tls-1024": { + "framework": "zix", + "language": "Zig", + "rps": 339689, + "avg_latency": "3.01ms", + "p99_latency": "30.48ms", + "cpu": "6603.4%", + "memory": "228MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "20.15GB", + "reconnects": 0, + "status_2xx": 1732248, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-tls-4096": { + "framework": "zix", + "language": "Zig", + "rps": 314396, + "avg_latency": "12.92ms", + "p99_latency": "137.85ms", + "cpu": "6492.3%", + "memory": "543MiB", + "connections": 4096, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "18.65GB", + "reconnects": 0, + "status_2xx": 1603311, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "static-tls-6800": { + "framework": "zix", + "language": "Zig", + "rps": 300828, + "avg_latency": "22.59ms", + "p99_latency": "224.57ms", + "cpu": "6496.8%", + "memory": "841MiB", + "connections": 6800, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "17.84GB", + "reconnects": 0, + "status_2xx": 1534600, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "unary-grpc-1024": { + "framework": "zix", + "language": "Zig", + "rps": 7030197, + "avg_latency": "7.52ms", + "p99_latency": "32.57ms", + "cpu": "2904.3%", + "memory": "206MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "447.82MB/s", + "reconnects": 0, + "status_2xx": 35572800, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "unary-grpc-256": { + "framework": "zix", + "language": "Zig", + "rps": 7000555, + "avg_latency": "2.20ms", + "p99_latency": "9.47ms", + "cpu": "2791.2%", + "memory": "180MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "444.16MB/s", + "reconnects": 0, + "status_2xx": 35282800, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "unary-grpc-tls-1024": { + "framework": "zix", + "language": "Zig", + "rps": 6781146, + "avg_latency": "7.66ms", + "p99_latency": "98.54ms", + "cpu": "2877.7%", + "memory": "318MiB", + "connections": 1024, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "431.95MB/s", + "reconnects": 0, + "status_2xx": 34312600, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + }, + "unary-grpc-tls-256": { + "framework": "zix", + "language": "Zig", + "rps": 6962147, + "avg_latency": "2.22ms", + "p99_latency": "20.73ms", + "cpu": "2903.7%", + "memory": "201MiB", + "connections": 256, + "threads": 64, + "duration": "5s", + "pipeline": 1, + "bandwidth": "440.85MB/s", + "reconnects": 0, + "status_2xx": 35019600, + "status_3xx": 0, + "status_4xx": 0, + "status_5xx": 0 + } + } +} diff --git a/site/static/logs/baseline-h2/1024/zix-http2.log b/site/static/logs/baseline-h2/1024/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/baseline-h2/256/zix-http2.log b/site/static/logs/baseline-h2/256/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/baseline-h2c/1024/zix-http2.log b/site/static/logs/baseline-h2c/1024/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/baseline-h2c/256/zix-http2.log b/site/static/logs/baseline-h2c/256/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/baseline-h2c/4096/zix-http2.log b/site/static/logs/baseline-h2c/4096/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/json-h2c/1024/zix-http2.log b/site/static/logs/json-h2c/1024/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/json-h2c/4096/zix-http2.log b/site/static/logs/json-h2c/4096/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/static-h2/1024/zix-http2.log b/site/static/logs/static-h2/1024/zix-http2.log new file mode 100644 index 000000000..e69de29bb diff --git a/site/static/logs/static-h2/256/zix-http2.log b/site/static/logs/static-h2/256/zix-http2.log new file mode 100644 index 000000000..e69de29bb