Skip to content

v0.32.0

Choose a tag to compare

@github-actions github-actions released this 14 Apr 22:28
· 107 commits to main since this release
c34424e

saorsa-transport v0.32.0

Overview

saorsa-transport is a QUIC transport protocol implementation with advanced NAT traversal capabilities, optimized for P2P networks and the Autonomi ecosystem.

Installation

From crates.io

cargo install saorsa-transport

Pre-built binaries

Download the appropriate binary for your platform below.

Linux/macOS:

tar -xzf saorsa-transport-*.tar.gz
chmod +x saorsa-transport
./saorsa-transport --help

Windows:

Expand-Archive saorsa-transport-*.zip
.\saorsa-transport.exe --help

Docker

docker pull ghcr.io/saorsa-labs/saorsa-transport:0.32.0

What's Changed

Changelog

All notable changes to saorsa-transport will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[0.32.0] - 2026-04-14

Bug Fixes

  • Remove references to deleted ConnectionHealth API in tests (50f3241)
  • Differentiate FAST_SEND_ACK_TIMEOUT from default (500ms → 250ms) (eb1eb64)
  • Race condition in hole-punch peer ID matching (da74da9)
  • Scale send ACK timeout with payload size (9009e64)
  • Always overwrite NAT API connection DashMap with newer connection (c670c54)
  • Detect zombie connections before queuing PUNCH_ME_NOW relay (5516b06)
  • Detect stale coordinator connections by comparing handle indices (0216038)
  • Keep preferred coordinator on hole-punch retry (e861d3a)
  • Reject IPv6 documentation prefix in UPnP external IP classifier (21bda71)
  • Address PR #42 review — atomic fallback decrement, read-lock connect_transport, bench cleanup (45bf738)
  • Raise coordinator PUNCH_ME_NOW rate limit from 5 to 50 per minute (496721b)
  • Raise coordinator PUNCH_ME_NOW rate limit from 50 to 300 per minute (6e85dd9)
  • Raise coordinator PUNCH_ME_NOW rate limit from 5 to 50 per minute (70ab29b)
  • Raise send_ack_timeout from 500ms to 5s for cross-region connections (a6c82d0)
  • Accept loop keeps newer connection on dedup instead of closing it (55ffca7)
  • Replace has_public_ip with scope-aware peer-verified direct reachability (1478a1b)
  • Address review feedback — double-count bug, relay capability, rustdoc (d12d86c)
  • Rotate through all relay candidates instead of failing on first (6f139c7)
  • Return socket on session reuse instead of None (e44b25e)
  • Schedule periodic cleanup of expired relay sessions (f475bd0)
  • Quality-aware coordinator selection with RTT weighting and load balancing (44b4662)
  • Defer old connection close on dedup to avoid disrupting in-flight DHT queries (664ce20)
  • Normalize IPv4-mapped IPv6 addresses in hole-punch DashMap lookups (2cabf2b)
  • NAT traversal fixes for large-scale testnets (990+ nodes) (b2e6aaa)
  • Increase handshake channel capacity from 32 to 1024 (8f1dd14)
  • Apply rustfmt formatting and fix test_default_config assertion (a6cc9fb)

Features

  • Add preferred coordinator for hole-punch relay and improve relay diagnostics (d99e5ab)
  • Best-effort UPnP IGD port mapping for NAT traversal (7314d0b)
  • Rotate hole-punch coordinators with capped per-attempt timeout (b58e671)
  • PUNCH_ME_NOW_NACK — coordinator signals target not found (9a8ffa2)
  • Increase ACK timeout size budget from 1ms/KB to 4ms/KB (35a43c7)

Miscellaneous Tasks

  • Resolve merge conflict with rc-2026.4.1 after PR #41 (faaa797)
  • Bump version to 0.32.0 (49a13c4)

Performance

  • Tighten network timeouts for faster connection establishment (56e89b6)
  • Increase timeouts based on 50-node multi-region testnet data (e29f324)
  • [BREAKING] Hold read lock on router during send via atomic selection stats (3c847aa)

Refactor

  • Remove dead connect_dual_stack and try_connect_family methods (49a78e6)
  • [BREAKING] Remove dead NatTraversalEndpoint hole-punch chain (5280123)
  • [BREAKING] Remove orphaned CandidatePair public types (090a45c)
  • [BREAKING] Make ConnectionRouter fully lock-free and interior-mutable (386c6e8)

Styling

  • Apply rustfmt to two unrelated info! call sites (b906e65)

Debug

  • Add peer ID tracing to hole-punch coordination path (f65af2e)
  • Check connection health before queuing PUNCH_ME_NOW relay (e828dbc)
  • Log when PUNCH_ME_NOW relay frame is encoded into QUIC packet (6c4088f)

Checksums

See checksums.txt for SHA256 checksums of all binaries.