Skip to content

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 08:05
· 30 commits to main since this release
a47c02d

https:// benchmarks now run on OpenSSL 3.5.7 instead of BoringSSL. Same
protocol, same code above it, a different implementation underneath — if you
compare TLS numbers across this release, compare them knowing that. Cleartext
benchmarks are untouched.

Why change it again

2.0.0 moved from std.crypto.tls to ztls over a Zig-built BoringSSL, because
HTTP/2 over TLS needs ALPN and std.crypto.tls has none. That worked. It also
left zrk and zoxy — which share a TLS stack,
a benchmark harness and a comparability rule — sitting on two different
libcryptos.

Only one of the two could move. BoringSSL has no CRYPTO_set_mem_functions,
and zoxy installs a fixed libcrypto heap through exactly that API; without it
the proxy refuses to start rather than run without its allocation budget. So
the shared libcrypto had to be OpenSSL, and zrk is the side that moves.

zrk gains nothing functionally from this — it installs no allocation hooks, and
BoringSSL served it perfectly well. What it gains is not being the odd one out:
one libcrypto, one set of CVEs to track, one thing to audit.

What it is

zoxy-io/openssl — OpenSSL 3.5.7, the
LTS line, supported to April 2030 — carrying
allyourcodebase/openssl#5
for the aarch64 assembly upstream ships only for x86_64.

Still one static binary per platform, still four platforms, still
cross-compiled from a single runner.

Also

  • The release workflow builds the four targets in parallel (15 minutes down to
    about 5) and can be rehearsed without publishing anything.

Upgrading

Nothing to do. No flags, output or behaviour change. If you pin zrk beside
zoxy for comparable runs, move both.