Skip to content

Xray-core v26.8.11

Choose a tag to compare

@Jolymmiles Jolymmiles released this 10 Aug 09:36
· 5 commits to main since this release

Highlights

  • Added opt-in H2MUX support with "protocol": "h2mux" for outbound sing-mux carriers and automatic inbound H2MUX detection.
  • Added opt-in TCP Brutal bandwidth negotiation through brutal-opts, shared by SMUX and H2MUX.
  • Retained the Linux-only release matrix with unpacked executables published alongside ZIP archives and digest files.

Fork fixes

  • Implemented H2MUX independently on the existing authenticated carrier using HTTP/2 prior knowledge and one CONNECT exchange per logical stream.
  • Added bounded H2MUX stream lifecycle, cancellation, replay, TCP, UDP, padding, and carrier teardown handling.
  • Added strict Brutal rate parsing, bounded negotiation diagnostics, physical-connection publication, and Linux socket ABI checks.

Upstream changes

  • Synchronized with upstream main through commit bc6e966a.
  • Updated github.com/cloudflare/circl to 1.6.5 and docker/login-action to 4.6.0.

Compatibility notes

  • Empty or omitted smux.protocol still selects SMUX; YAMUX remains unsupported.
  • Brutal is disabled unless explicitly enabled. Both configured rates must be at least 65,536 bytes per second.
  • Brutal runtime use requires the Linux brutal TCP congestion-control module. Negotiation or socket setup failure rejects the carrier instead of silently falling back.

Validation

  • Passed unit tests for common/singmux, common/mux, app/proxyman/outbound, and infra/conf.
  • Passed race tests and 50 consecutive sing-mux package runs.
  • Passed all 40 H2MUX real-process interoperability scenarios across Xray, sing-box, Mihomo, VLESS, Trojan, TCP, UDP, and padding on/off.
  • Cross-compiled the Linux/amd64 sing-mux test binary, including the Brutal ABI tests.
  • Built a static stripped Linux/amd64 release ELF; SHA-256: 665eb858321035e2d9d7beb4ff4222a64b9e2cf68e4b9768d2f9743e3ab09979.