Skip to main content

TokioUdp

Struct TokioUdp 

Source
pub struct TokioUdp;
Expand description

UDP stream entry points backed by tokio::net::UdpSocket.

Implementations§

Source§

impl TokioUdp

Source

pub fn bind<A>( addr: A, max_datagram_size: usize, receive_buffer: usize, ) -> Source<Datagram, StreamCompletion<UdpBinding>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static,

Binds an unconnected UDP socket and emits received datagrams.

The socket is bound when the source is materialized and first pulled. Each successful recv_from produces exactly one Datagram, preserving datagram boundaries. Datum buffers at most receive_buffer datagrams in process; when that buffer is full, newly received datagrams are dropped. UDP itself may also drop datagrams before Datum sees them.

Source

pub fn bind_default<A>( addr: A, ) -> Source<Datagram, StreamCompletion<UdpBinding>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static,

Binds an unconnected UDP socket using the default datagram size and receive buffer.

Source

pub fn send_sink<A>(local_addr: A) -> Sink<Datagram, StreamCompletion<NotUsed>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static,

Creates a sink that binds local_addr and sends each upstream datagram to its Datagram::remote with one send_to call.

A send failure fails the stream with StreamError. Successful sends only mean the datagram was handed to the operating system; UDP provides no delivery acknowledgement.

Source

pub fn bind_flow<A>( addr: A, max_datagram_size: usize, receive_buffer: usize, ) -> Flow<Datagram, Datagram, StreamCompletion<UdpBinding>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static,

Binds a UDP socket as a bidirectional datagram flow.

Network datagrams are emitted downstream as Datagram values. Upstream datagrams are sent through the same socket to their remote addresses. This mirrors the Pekko Connectors bindFlow echo-server shape while preserving UDP’s lossy, bounded-buffer semantics.

Source

pub fn bind_flow_default<A>( addr: A, ) -> Flow<Datagram, Datagram, StreamCompletion<UdpBinding>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static,

Binds a UDP bidirectional flow using default datagram size and receive buffer.

Source

pub fn connect<A, P>( local_addr: A, peer: P, max_datagram_size: usize, receive_buffer: usize, ) -> Flow<Vec<u8>, Vec<u8>, StreamCompletion<UdpConnection>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static, P: ToSocketAddrs + Clone + Send + Sync + 'static,

Binds a UDP socket, connects it to peer, and exchanges byte payloads.

Connected UDP still uses datagrams and still provides no reliability. The connection only fixes the peer used by send/recv and lets the OS filter datagrams from other remotes. One upstream Vec<u8> maps to one UDP send and one socket recv maps to one downstream Vec<u8>.

Source

pub fn connect_default<A, P>( local_addr: A, peer: P, ) -> Flow<Vec<u8>, Vec<u8>, StreamCompletion<UdpConnection>>
where A: ToSocketAddrs + Clone + Send + Sync + 'static, P: ToSocketAddrs + Clone + Send + Sync + 'static,

Creates a connected UDP flow using default datagram size and receive buffer.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Message for T
where T: Any + Send + 'static,

Source§

fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>

Convert a BoxedMessage to this concrete type
Source§

fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>

Convert this message to a BoxedMessage
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> State for T
where T: Any + Send + 'static,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more