zerodds-transport-udp
Layer 2 — Wire (UDP). UDP/IP transport (default).
- Source: crates/transport-udp
- API docs: docs.rs/zerodds-transport-udp
UDP/IP PSM implementation of the zerodds-transport::Transport trait: UDPv4 unicast + multicast (discovery), SO_REUSEADDR/SO_REUSEPORT, multicast TTL.
Spec anchors
- UDP/IP PSM of the
zerodds-transport::Transporttrait — the default DDS transport.
Quick start
Bind a unicast socket, or join the discovery multicast group, then send/recv via the Transport trait:
use std::net::Ipv4Addr;
use zerodds_transport::Transport;
use zerodds_transport_udp::UdpTransport;
// Unicast bind
let udp = UdpTransport::bind_v4(Ipv4Addr::UNSPECIFIED, 7410)?;
// …or join the SPDP/SEDP discovery multicast group
let group = Ipv4Addr::new(239, 255, 0, 1);
let disco = UdpTransport::bind_multicast_v4(group, 7400, Ipv4Addr::UNSPECIFIED)?;
udp.send(&dest, &datagram)?;
let received = udp.recv()?;
Modules
udp_transport—UdpTransport+UdpTransportConfig(bind_v4 / bind_v4_reuse / bind_multicast_v4 / bind_v6 / with_timeout).recv_batch— batched receive to amortise syscall overhead.
Coverage & tests
Coverage ledger: ddsi-rtps-2.5 (§9.6.1 UDP/IP PSM). 11 tests (8 lib + 3 doctest); run cargo test -p zerodds-transport-udp.
Stability
1.0.0-rc.3. 11 tests green (8 lib + 3 doctest).
zerodds-transport-udp
Layer 2 — Wire (UDP). UDP/IP-Transport (Default).
- Quelle: crates/transport-udp
- API-Docs: docs.rs/zerodds-transport-udp
UDP/IP-PSM-Implementierung des zerodds-transport::Transport-Traits: UDPv4 Unicast + Multicast (Discovery), SO_REUSEADDR/SO_REUSEPORT, Multicast-TTL.
Spec-Anker
- UDP/IP-PSM des
zerodds-transport::Transport-Traits — Default-DDS-Transport.
Quick Start
Einen Unicast-Socket binden oder der Discovery-Multicast-Gruppe beitreten, dann send/recv über das Transport-Trait:
use std::net::Ipv4Addr;
use zerodds_transport::Transport;
use zerodds_transport_udp::UdpTransport;
// Unicast bind
let udp = UdpTransport::bind_v4(Ipv4Addr::UNSPECIFIED, 7410)?;
// …or join the SPDP/SEDP discovery multicast group
let group = Ipv4Addr::new(239, 255, 0, 1);
let disco = UdpTransport::bind_multicast_v4(group, 7400, Ipv4Addr::UNSPECIFIED)?;
udp.send(&dest, &datagram)?;
let received = udp.recv()?;
Module
udp_transport—UdpTransport+UdpTransportConfig(bind_v4 / bind_v4_reuse / bind_multicast_v4 / bind_v6 / with_timeout).recv_batch— gebündelter Empfang zur Amortisierung des Syscall-Overheads.
Coverage & Tests
Coverage-Ledger: ddsi-rtps-2.5 (§9.6.1 UDP/IP-PSM). 11 Tests (8 lib + 3 Doctest); cargo test -p zerodds-transport-udp.
Stabilität
1.0.0-rc.3. 11 Tests grün (8 lib + 3 Doctest).