Skip to content

Split-Process Fast-Path Data Plane and UDP Tunneling

Latest

Choose a tag to compare

@itsVentie itsVentie released this 17 Jul 22:21
6e123d4

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 WSAEADDRINUSE resource 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