# capture=docs/research/perf/20260705-160550-awslc-local
# timestamp_utc=20260705-160550
# git_revision=ca5359085548e1f890f913f50c9df8fba30b859d
# git_dirty=false
# zig_version=0.15.2
# zig_optimization_mode=ReleaseFast
# crypto_backend=aws-lc
# openssl_pkg_config_path=/nix/store/HASH-openssl-3.6.2-dev/lib/pkgconfig
# aws_lc_pkg_config_path=/nix/store/HASH-aws-lc-1.69.0-dev/lib/pkgconfig
# linked_libcrypto=/nix/store/HASH-aws-lc-1.69.0/lib/libcrypto.so
# ztls_linked_libcrypto=/nix/store/HASH-aws-lc-1.69.0/lib/libcrypto.so
# evp_linked_libcrypto=/nix/store/HASH-openssl-3.6.2/lib/libcrypto.so.3
# libssl_linked_libcrypto=/nix/store/HASH-openssl-3.6.2/lib/libcrypto.so.3
# libssl_linked_libssl=/nix/store/HASH-openssl-3.6.2/lib/libssl.so.3
# openssl_cli_version=OpenSSL 3.6.2 7 Apr 2026 (Library: OpenSSL 3.6.2 7 Apr 2026)
# rustls_profile=release
# rustls_version=0.23.40
# cpu_governor=performance
# rustc_version=rustc 1.96.0 (ac68faa20 2026-05-25)
# benchstat_path=/nix/store/HASH-benchstat-unstable-2026-05-12/bin/benchstat
# go_version=go version go1.26.3 linux/arm64

## Comparable TLS application-data rows
                                              │     ztls     │               openssl               │
                                              │    sec/op    │    sec/op     vs base               │
AppPingPong TLS_AES_128_GCM_SHA256 1350         1.156µ ± ∞ ¹   2.029µ ± ∞ ¹  +75.52% (p=0.008 n=5)
AppPingPong TLS_AES_256_GCM_SHA384 1350         1.289µ ± ∞ ¹   2.153µ ± ∞ ¹  +67.03% (p=0.008 n=5)
AppPingPong TLS_CHACHA20_POLY1305_SHA256 1350   4.498µ ± ∞ ¹   5.442µ ± ∞ ¹  +20.99% (p=0.008 n=5)
¹ need >= 6 samples for confidence interval at level 0.95

                                              │     ztls      │               openssl                │
                                              │      B/s      │      B/s       vs base               │
AppPingPong TLS_AES_128_GCM_SHA256 1350         2.175Gi ± ∞ ¹   1.239Gi ± ∞ ¹  -43.03% (p=0.008 n=5)
AppPingPong TLS_AES_256_GCM_SHA384 1350         1.951Gi ± ∞ ¹   1.168Gi ± ∞ ¹  -40.16% (p=0.008 n=5)
AppPingPong TLS_CHACHA20_POLY1305_SHA256 1350   572.5Mi ± ∞ ¹   473.2Mi ± ∞ ¹  -17.34% (p=0.008 n=5)
¹ need >= 6 samples for confidence interval at level 0.95

## Non-equivalent handshake rows (auth-policy differs; reported for transparency only)
ztls verifies CertificateVerify, hostname, and leaf policy; rustls NoVerifier skips signature and policy; libssl SSL_VERIFY_NONE behavior is partly opaque. Do not use the vs-base columns below as apples-to-apples performance claims.

                                         │     ztls     │               openssl               │
                                         │    sec/op    │    sec/op     vs base               │
Handshake TLS_AES_128_GCM_SHA256 1         179.1µ ± ∞ ¹   321.2µ ± ∞ ¹  +79.33% (p=0.008 n=5)
Handshake TLS_AES_256_GCM_SHA384 1         248.6µ ± ∞ ¹   336.7µ ± ∞ ¹  +35.47% (p=0.008 n=5)
Handshake TLS_CHACHA20_POLY1305_SHA256 1   180.1µ ± ∞ ¹   324.0µ ± ∞ ¹  +79.89% (p=0.008 n=5)
¹ need >= 6 samples for confidence interval at level 0.95
