Back to the Webship blog

Webship engineering

Webship 1.3.1: Higher HTTP/2 and Reverse-Proxy Capacity

Webship 1.3.1 raises direct h2c capacity by 34.19%, direct HTTP/2 TLS by 26.67%, and reverse-proxy H1 by 15.10% versus 1.2.0, while strengthening transport stability and correctness.

Webship 1.3.1 turns two release cycles of transport profiling, protocol hardening, and stability work into measurable capacity gains. On the same Debian benchmark host, eight of the ten comparable direct and reverse-proxy request workloads are faster than Webship 1.2.0.

The largest changes are in HTTP/2: direct h2c rises from 1,003,468 to 1,346,548 requests per second, while direct HTTP/2 TLS rises from 884,857 to 1,120,872 requests per second. Reverse-proxy capacity also improves across every measured protocol.

Webship 1.3.1 compared with 1.2.0

The table below compares median server-local request capacity. Higher is better.

| Direct workload | Webship 1.2.0 | Webship 1.3.1 | Change | | --- | ---: | ---: | ---: | | HTTP/1.1 | 414,195 RPS | 414,060 RPS | -0.03% | | HTTP/1.1 TLS | 303,788 RPS | 312,439 RPS | +2.85% | | h2c | 1,003,468 RPS | 1,346,548 RPS | +34.19% | | HTTP/2 TLS | 884,857 RPS | 1,120,872 RPS | +26.67% | | HTTP/3 TLS | 409,514 RPS | 400,187 RPS | -2.28% |

| Reverse proxy with TLS termination | Webship 1.2.0 | Webship 1.3.1 | Change | | --- | ---: | ---: | ---: | | HTTP/1.1 | 165,160 RPS | 190,102 RPS | +15.10% | | HTTP/1.1 TLS | 118,681 RPS | 123,344 RPS | +3.93% | | h2c | 122,371 RPS | 135,499 RPS | +10.73% | | HTTP/2 TLS | 113,919 RPS | 124,957 RPS | +9.69% | | HTTP/3 TLS | 126,407 RPS | 131,529 RPS | +4.05% |

Direct HTTP/1.1 is effectively unchanged. Direct HTTP/3 TLS is 2.28% below the 1.2.0 median, so we are not presenting every cell as a gain. The release delivers its clearest improvements in HTTP/2 and reverse-proxy capacity while preserving a strict zero-error acceptance policy.

Where the gains came from

Webship 1.3.1 reduces work on the hottest paths instead of weakening protocol or security checks.

  • Connection-local replicas let repeated HTTP/1 and HTTP/2 responses avoid process-wide byte-buffer reference-count contention.
  • Shared HPACK blocks now include connection-stable HTTP/2 fields, reducing repeated header encoding.
  • HTTP/2 flushes queued output before attempting another socket read and uses more connection-owned, lock-free stream bookkeeping.
  • HTTP/3 established short-header packets avoid one receive copy, while handshake packets retain ownership-safe buffering.
  • TLS pass-through reuses worker-local relay buffers and an idle timer instead of rebuilding them for each relay cycle.
  • Release transport paths no longer carry tracing call sites when instrumentation is disabled.

These changes retain framing, trailers, cancellation, inspection, and backpressure. They reduce coordination and allocation costs without turning correctness work into an optional fast path.

Stability is part of capacity

A fast median is useful only when the run is correct and repeatable. Every accepted request-capacity sample required zero HTTP errors, socket errors, protocol failures, proxy-generated failures, major page faults, and HTTP/3 packet loss.

The release also keeps listeners alive through transient descriptor, memory, and network pressure; bounds cache-collapse waits by the request deadline; preserves TLS pass-through responses after half-close; and corrects WebTransport admission, accounting, panic isolation, and rejection ordering.

The focused reverse HTTP/2 TLS qualification produced a 124,957 RPS median with 0.89% spread and 0.33% coefficient of variation. Requalified terminated and pass-through HTTP/3 streaming each passed seven accepted samples with exact 99,943,778-byte bodies and no client, protocol, or packet-loss errors.

WebTransport and 100 MB streaming

Webship 1.3.1 also qualifies server-local WebTransport and large-file streaming paths:

  • Direct WebTransport: 1,018.1 MiB/s for reliable streams and 1,038.9 MiB/s for datagrams.
  • WebTransport through TLS pass-through: 548.6 MiB/s for reliable streams and 629.7 MiB/s for datagrams.
  • Direct 100 MB streaming: 4,194.8 MiB/s on HTTP/1.1 TLS, 3,574.3 MiB/s on HTTP/2 TLS, and 2,096.9 MiB/s on HTTP/3 TLS.
  • Reverse-proxy streaming with TLS termination: 3,585.7 MiB/s, 3,355.0 MiB/s, and 1,938.6 MiB/s respectively.

A release built for measurable operation

Webship 1.3.1 is available as signed binaries for supported Linux, Windows, macOS, and OpenHarmony targets. The Linux x86_64 release includes its compatible PGO profile and provenance metadata.

Read the complete [benchmark methodology and current comparison](/benchmarks), review the [1.3.1 documentation](/docs/1.3.1), or get the signed build from [Downloads](/downloads).

Sources and content method

The comparison uses the recorded Webship 1.2.0 Debian matrix dated September 4, 2026 and the Webship 1.3.1 unified Debian capacity benchmark dated September 11, 2026. Percentages are calculated from the recorded medians.