MEHS / Knowledge base

Support matrix and release gate

This page describes what MEHS claims, how each claim is verified, and the checks expected before a release. Verification levels:

Platforms

ComponentLinux x86_64Windows x64Windows x86macOSAndroidiOS
General behavior checksNative-testedNative-testedNative-testedNative-testedNative-testedPackage-only
Server (Debian 13 x86_64 reference)Native-tested + end-to-end smokeNative-tested (unit)Native-tested (unit)Native-tested (unit)Native-tested + end-to-end smoken/a
CLI + local SOCKS5/HTTP proxyNative-tested + end-to-end smokeNative-tested (unit); manual end-to-end verifiedNative-tested (unit); manual end-to-end verifiedNative-tested (unit)Native-tested + end-to-end smokeUnsupported
C FFINative-tested (ABI, panic, lifecycle)Native-tested (ABI, panic, lifecycle)Native-tested (ABI, panic, lifecycle)Native-tested; aarch64/x86_64 target checksNative-tested (ABI, panic, lifecycle)Package-only
TUN modeManually verified end to end (network namespace, TCP + QUIC)Manually verified (Wintun, administrator)Manually verified (Wintun, administrator)Implemented (utun); not runtime-testedHost-provided descriptor; device lifecycle not runtime-testedNEPacketTunnelFlow callbacks; host integration not runtime-tested

“Manual end-to-end verified” means a maintainer ran the client against a Debian 13 server; it is not a repeatable automated check.

TUN mode needs no remote gateway. If the client is killed, a detached cleanup process (and the next start) removes stale host routes; this cleanup was verified on Linux. Linux TUN has manual end-to-end verification over TCP and QUIC; Windows TUN has separate manual verification with Wintun. Neither is a repeatable automated end-to-end check. macOS and Android TUN are not runtime-tested; sleep/wake and network-change behavior is untested on every OS. Maintainers manually verified through proxy mode and Linux TUN: TCP, UDP, DNS, large transfers, WebSockets, persistent connections, SSH, gaming, video streaming, and Telegram/WhatsApp/Discord calls. Windows packages exist for x64, x86, and arm64 (the 0.9.2 arm64 release has not been run).

Transports and features

CapabilityStatusVerification
TLS 1.3 / TCP data path (mehs-data/1)ImplementedSmoke test (SOCKS5 + HTTP CONNECT through a real server)
QUIC data pathImplementedSmoke test
SOCKS5 CONNECT, UDP ASSOCIATE; HTTP CONNECTImplementedUnit/integration tests; CONNECT and SOCKS5 TCP in smoke test
Optional file storageImplemented, optionalFeature checks and tests
Example configurationsParse and validateServer and client FFI tests
CLI --help and documented invocation flagsExercisedSmoke test
Live multi-path migration end to endManually verified (loopback, TCP→QUIC under injected TCP latency, live downloads uninterrupted)Not included in automated checks
xhttp, trusttunnel, notmehs profilesSupported (MEHS-native; no third-party interoperability)Unit tests; end-to-end over TCP and QUIC
Per-app routing (apps)Linux, Windows (proxy and TUN); unsupported elsewhereUnit tests; Windows proxy end-to-end
Windows TUNVerified working by maintainers (Wintun, administrator)Manual
Raw-IP gateway serviceNot implementedn/a

FFI guarantees

Compatibility and migration

Release gate

A release is ready only when all of the following hold. Benchmark numbers and external audit completion are not gating criteria.

  1. Platform behavior, feature compatibility, target checks, and end-to-end connectivity checks pass.
  2. Release packages have been produced for Windows, Android, iOS, Linux client, and Debian 13 server from the intended release version.
  3. End-to-end client/server behavior is verified for the release version.
  4. There are no open release-blocker issues; known limitations in the public documentation and changelog match the released behavior.
  5. Any ABI/config/wire change is recorded in release migration notes.
  6. Release status continues to state that the wire protocol is not frozen and no independent audit has been done.