Skip to main content

datum_net/
lib.rs

1#![forbid(unsafe_code)]
2//! Network sources and sinks for Datum streams.
3//!
4//! `datum-net` is the network satellite crate for the Datum family. It provides
5//! TLS-wrapped TCP sources and sinks through [`TokioTls`] plus UDP datagram
6//! sources, sinks, and flows through [`TokioUdp`], and QUIC endpoint/stream
7//! helpers through [`TokioQuic`]. Connection lifecycle helpers
8//! add timeout, retry, and explicit half-close affordances for client
9//! connection flows.
10
11/// The `datum-net` crate version.
12pub const VERSION: &str = env!("CARGO_PKG_VERSION");
13
14pub(crate) mod async_carrier;
15pub mod connection;
16pub mod quic;
17pub mod stream_ref;
18pub mod tls;
19pub mod udp;
20
21pub use connection::{Connection, ConnectionLifecycleExt, ConnectionSettings, RetryPolicy};
22pub use quic::{
23    DEFAULT_CHUNK_SIZE as QUIC_DEFAULT_CHUNK_SIZE, Quic, QuicBidirectionalStream, QuicBinding,
24    QuicByteSink, QuicByteSource, QuicCarrierDiagnosticCounts, QuicCarrierDiagnostics,
25    QuicConnection, QuicIncomingConnection, QuicStream, TokioQuic,
26};
27pub use stream_ref::{
28    StreamRefProtocolDiagnostics, StreamRefProtocolMessageCounts, StreamRefQuicHandle,
29    StreamRefTcpBinding, StreamRefTcpHandle, serve_sink_ref_over_quic, serve_sink_ref_over_tcp,
30    serve_sink_ref_over_tcp_stream, serve_sink_ref_over_tcp_stream_with_diagnostics,
31    serve_sink_ref_over_tcp_with_diagnostics, serve_source_over_quic, serve_source_ref_over_quic,
32    serve_source_ref_over_tcp, serve_source_ref_over_tcp_stream,
33    serve_source_ref_over_tcp_stream_with_diagnostics, serve_source_ref_over_tcp_with_diagnostics,
34    sink_ref_over_quic, sink_ref_over_tcp, sink_ref_over_tcp_stream,
35    sink_ref_over_tcp_stream_with_diagnostics, sink_ref_over_tcp_with_diagnostics,
36    source_ref_over_quic, source_ref_over_tcp, source_ref_over_tcp_stream,
37    source_ref_over_tcp_stream_with_diagnostics, source_ref_over_tcp_with_diagnostics,
38};
39pub use tls::{
40    Tls, TlsBinding, TlsByteSink, TlsByteSource, TlsCarrierDiagnosticCounts, TlsCarrierDiagnostics,
41    TlsConnection, TlsIncomingConnection, TokioTls,
42};
43pub use udp::{
44    DEFAULT_MAX_DATAGRAM_SIZE, DEFAULT_RECEIVE_BUFFER, Datagram, TokioUdp, Udp, UdpBinding,
45    UdpConnection,
46};
47
48#[doc(hidden)]
49pub use async_carrier::{
50    ShardedTokioTestConfig, sharded_tokio_carrier_connection_count, with_sharded_tokio_test_config,
51};