datum-net 0.10.6

Network sources and sinks for Datum streams, built on datum-core
Documentation
#![forbid(unsafe_code)]
//! Network sources and sinks for Datum streams.
//!
//! `datum-net` is the network satellite crate for the Datum family. It provides
//! TLS-wrapped TCP sources and sinks through [`TokioTls`] plus UDP datagram
//! sources, sinks, and flows through [`TokioUdp`], and QUIC endpoint/stream
//! helpers through [`TokioQuic`]. Connection lifecycle helpers
//! add timeout, retry, and explicit half-close affordances for client
//! connection flows.

/// The `datum-net` crate version.
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

#[cfg(any(feature = "tls", feature = "udp", feature = "quic"))]
pub(crate) mod async_carrier;
#[cfg(feature = "tls")]
pub mod connection;
#[cfg(feature = "quic")]
pub mod quic;
#[cfg(any(feature = "tcp", feature = "quic"))]
pub mod stream_ref;
#[cfg(feature = "tls")]
pub mod tls;
#[cfg(feature = "udp")]
pub mod udp;

#[cfg(feature = "tls")]
pub use connection::{Connection, ConnectionLifecycleExt, ConnectionSettings, RetryPolicy};
#[cfg(feature = "quic")]
pub use quic::{
    DEFAULT_CHUNK_SIZE as QUIC_DEFAULT_CHUNK_SIZE, Quic, QuicBidirectionalStream, QuicBinding,
    QuicByteSink, QuicByteSource, QuicCarrierDiagnosticCounts, QuicCarrierDiagnostics,
    QuicConnection, QuicIncomingConnection, QuicStream, TokioQuic,
};
#[cfg(any(feature = "tcp", feature = "quic"))]
pub use stream_ref::{StreamRefProtocolDiagnostics, StreamRefProtocolMessageCounts};
#[cfg(feature = "quic")]
pub use stream_ref::{
    StreamRefQuicHandle, serve_sink_ref_over_quic, serve_source_over_quic,
    serve_source_ref_over_quic, sink_ref_over_quic, source_ref_over_quic,
};
#[cfg(feature = "tcp")]
pub use stream_ref::{
    StreamRefTcpBinding, StreamRefTcpHandle, serve_sink_ref_over_tcp,
    serve_sink_ref_over_tcp_stream, serve_sink_ref_over_tcp_stream_with_diagnostics,
    serve_sink_ref_over_tcp_with_diagnostics, serve_source_ref_over_tcp,
    serve_source_ref_over_tcp_stream, serve_source_ref_over_tcp_stream_with_diagnostics,
    serve_source_ref_over_tcp_with_diagnostics, sink_ref_over_tcp, sink_ref_over_tcp_stream,
    sink_ref_over_tcp_stream_with_diagnostics, sink_ref_over_tcp_with_diagnostics,
    source_ref_over_tcp, source_ref_over_tcp_stream, source_ref_over_tcp_stream_with_diagnostics,
    source_ref_over_tcp_with_diagnostics,
};
#[cfg(feature = "tls")]
pub use tls::{
    Tls, TlsBinding, TlsByteSink, TlsByteSource, TlsCarrierDiagnosticCounts, TlsCarrierDiagnostics,
    TlsConnection, TlsIncomingConnection, TokioTls,
};
#[cfg(feature = "udp")]
pub use udp::{
    DEFAULT_MAX_DATAGRAM_SIZE, DEFAULT_RECEIVE_BUFFER, Datagram, TokioUdp, Udp, UdpBinding,
    UdpConnection,
};

#[doc(hidden)]
#[cfg(any(feature = "tls", feature = "udp", feature = "quic"))]
pub use async_carrier::{
    ShardedTokioTestConfig, sharded_tokio_carrier_connection_count, with_sharded_tokio_test_config,
};