This major release introduces a structural evolution in Latch's architecture: the official separation of the Control Plane and Data Plane using a hybrid Go/Rust split-process model, alongside full post-quantum UDP encapsulation support.
Key Changes & Resolved Issues
- Split-Process Architecture (Go + Rust): Offloaded heavy data-path routing from the Go runtime to a dedicated native Rust daemon (
latch-dataplane). Go now safely handles orchestration, configuration, mTLS, and PQC key generation (Management Plane), while Rust manages high-speed stream forwarding. - UDP Encapsulation and Tunneling (Issue #5): Implemented an end-to-end post-quantum UDP transit pipeline. Legacy UDP packets are captured, wrapped in secure binary frames, encrypted via ChaCha20-Poly1305 using the hybrid master key, and decapsulated smoothly on the target node.
- Windows Socket Lifecycle & Race Fixes: Resolved critical
WSAEADDRINUSEresource collisions and port-handover race conditions on Windows. Re-engineered the control plane socket delegation flow to ensure zero-downtime port binding during active integration tests. - Deterministic Test Pipeline: Fixed intermittent I/O timeout bugs inside
TestEndToEndProxy. The cross-platform automation suite (test.ps1/test.sh) now reliably runs end-to-end hybrid proxy flows under full race-detector and fuzzing conditions.
Cross-Platform Automation Check
To locally verify the complete pipeline, execute independent fuzzing vectors, and cross-compile both control-plane and data-plane optimized binaries into ./dist/:
On Windows (PowerShell):
.\test.ps1
On Linux/macOS (Bash):
chmod +x test.sh
./test.sh