Skip to content

Specter v3.4.0 — mux, dial racing, UDP ACKs

Choose a tag to compare

@IntellsGamer IntellsGamer released this 17 Sep 10:33
· 3 commits to main since this release

Wire: 0x03 legacy + 0x04 mux (same crypto). Old clients, mux=off, and Python legacy all interoperate.

Mux (TCP legs): one trunk carries all streams; handshake once per trunk. Client mux on|off|auto (config.json + SPECTER_MUX, default auto); server SPECTER_MUX on|off (default on, off enforces legacy). Auto negotiates via version byte with transparent fallback + negative caching. UDP stays single-stream (mux=on + udp refuses loudly).

Reliability: target dials race all resolved IPs (250ms stagger, IPv4-first); UDP first flight selectively acked (cumul+SACK, delayed+gap-triggered) with client resend up to ~3s.

E2E: 20 parallel + 15x6.5MB on one trunk, legacy/fallback/UDP/Python matrix green, loopback UDP p50 ~1.5ms.