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
mainthrough commitbc6e966a. - Updated
github.com/cloudflare/circlto 1.6.5 anddocker/login-actionto 4.6.0.
Compatibility notes
- Empty or omitted
smux.protocolstill 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
brutalTCP 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, andinfra/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.