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 mod connection;
15pub mod quic;
16pub mod stream_ref;
17pub mod tls;
18pub mod udp;
19
20pub use connection::{Connection, ConnectionLifecycleExt, ConnectionSettings, RetryPolicy};
21pub use quic::{
22    DEFAULT_CHUNK_SIZE as QUIC_DEFAULT_CHUNK_SIZE, Quic, QuicBidirectionalStream, QuicBinding,
23    QuicByteSink, QuicByteSource, QuicConnection, QuicIncomingConnection, QuicStream, TokioQuic,
24};
25pub use stream_ref::{
26    StreamRefQuicHandle, serve_sink_ref_over_quic, serve_source_over_quic,
27    serve_source_ref_over_quic, sink_ref_over_quic, source_ref_over_quic,
28};
29pub use tls::{
30    Tls, TlsBinding, TlsByteSink, TlsByteSource, TlsConnection, TlsIncomingConnection, TokioTls,
31};
32pub use udp::{
33    DEFAULT_MAX_DATAGRAM_SIZE, DEFAULT_RECEIVE_BUFFER, Datagram, TokioUdp, Udp, UdpBinding,
34    UdpConnection,
35};