Skip to content

xray-rust v0.4.0

Choose a tag to compare

@aimalygin aimalygin released this 28 Aug 05:03
· 121 commits to main since this release

Highlights

  • Added Apple VLESS share-link import for xhttp/splithttp with plaintext,
    TLS, or REALITY transport security. The importer preserves supported
    security fields, handles bounded single- or double-percent-encoded extra
    JSON, and rejects unsupported non-empty certificate-pin/ECH settings instead
    of silently downgrading them.
  • Implemented Xray-compatible one-level XHTTP extra replacement semantics,
    while keeping outer host, path, and mode. The removed
    scMaxConcurrentPosts field remains import-compatible but is ignored rather
    than being misread as scMaxBufferedPosts.
  • Reduced plaintext HTTP/1.1 XHTTP packet-up memory pressure. Uplink buffers
    now grow in 8 KiB steps only when data is available and reuse their actual
    allocation instead of reserving or cloning the configured maximum POST size
    for every active flow.
  • Added an exact legacy-profile RSS benchmark with held-flow, 16 KiB control,
    settle, and ACK-gated rollover phases. The recorded 16-flow macOS run showed
    a 96 KiB median RSS delta between a 500000-byte max-POST profile and the
    otherwise identical 16384-byte control.
  • Updated h2 to 0.4.16 for its upstream RustSec fix and refreshed the
    transitive chacha20 lock entry to 0.10.2 after 0.10.1 was yanked.

Compatibility boundary

This release supports XHTTP share links with VLESS encryption=none and no
Vision flow. Effective XHTTP downloadSettings, non-empty modern TLS
certificate-pin/ECH fields that the current Rust model cannot honor, and
non-none VLESS encryption remain fail-closed.

The separately packaged Apple/Android SDK release will follow in
xray-rust-mobile v0.4.0.