SMUX, VLESS, Structured Logging, Runtime Reliability, CI and Tooling
This release is based on upstream Xray-core v26.7.11 and contains 27 individual changes plus the merge of PR #2.
In-tree SMUX stack
- Added an in-tree SMUX implementation with no external mux runtime dependency.
- Optimized carrier and server receive paths, bounded stalled streams and global admission, and limited admission pressure to pending handshakes.
- Fixed carrier and worker shutdown ordering so pooled readers are not released while background loops are still active.
- Added standalone throughput benchmarks and an automated configuration tuner.
VLESS and server performance
- Optimized plain and TCP connection setup, server hot paths, and REALITY/Vision processing.
- Released idle connection buffers earlier to reduce retained memory.
- Added regression coverage and fixes for asynchronous, dispatched, sniffing, and pooled-reader lifetimes.
Structured logging
- Added the structured logging runtime and output configuration.
- Added deterministic Unix-output reconnect coverage that behaves consistently on Windows, Linux, and macOS.
Runtime reliability
- Ensured mux link cleanup finishes before worker completion is signaled.
- Removed the buffer timeout sleeper goroutine.
- Prevented the KCP listener packet loop from blocking.
Build and development workflow
- Restored cross-platform CI checks for Windows, Linux, and macOS.
- Added local development tooling configuration.
- Set the core version to 26.7.24.
What's Changed
- feat(mux): add in-tree SMUX stack in
7093139 - perf(mux): optimize in-tree SMUX stack in
8e3f902 - perf(vless): optimize plain connection setup in
3c4faa4 - perf(vless): optimize TCP connection setup in
3139f05 - perf(server): optimize connection hot paths in
6526e05 - perf(vless): optimize REALITY and Vision paths in
71bb382 - test(vless): guard asynchronous connection lifetimes in
6171182 - perf(server): optimize hot paths and preserve lifetimes in
e2ed832 - fix(singmux): wait for carrier loops before release in
9d39d8c - feat(log): add structured logging runtime in
a9d4cfa - fix(dispatcher): preserve sniffing reader lifetime in
50a695c - chore(core): set version 26.7.21 in
ee7af30 - docs(log): document structured output configuration in
6f891e5 - fix(mux): finish link cleanup before signaling worker completion in
1c2f152 - perf(singmux): optimize server receive path in
4199e95 - perf(vless): release idle connection buffers in
a29d882 - fix(singmux): bound stalled streams and global admission in
3b5bbca - fix(singmux): limit pending handshakes only in
6150526 - test(singmux): add standalone throughput benchmark in
3b11225 - perf(buf): remove timeout sleeper goroutine in
0bca52f - fix(kcp): avoid blocking listener packet loop in
e1ecee9 - fix(vless): preserve dispatched reader lifetime in
2f7a61a - chore: bump version to 26.7.24 in
f4f67cf - fix(ci): restore cross-platform checks in
5762a3a - feat(smuxbench): add configuration tuner in
ec83954 - chore: configure local development tooling in
73f651d - test(log): make reconnect check deterministic in
4442a67
Full Changelog: 50231ea...v26.7.24