weida_core/lib.rs
1//! I/O-free core model of the weida messaging framework.
2//!
3//! This crate contains no networking, no `tokio` and no serialization: only the
4//! vocabulary types (endpoint addresses, limits, trace context, errors) that
5//! the wire codec and the transport share. Everything here is unit-testable
6//! without a socket.
7//!
8//! The correlation and acknowledgement state machines that used to live here
9//! are gone: Req/Rep rides one bidirectional QUIC stream, so the stream *is*
10//! the correlation, and delivery is QUIC's own transport receipt rather than an
11//! application-level ACK (`docs/ARCHITECTURE.md`, layer model).
12
13pub mod addr;
14pub mod error;
15pub mod identity;
16pub mod limits;
17pub mod trace;
18
19pub use addr::{
20 Address, DEFAULT_PORT, EndpointAddr, InprocAddr, MAX_BUS_BYTES, MAX_PATH_BYTES,
21 MAX_PIPE_NAME_BYTES, MAX_SOCKET_PATH_BYTES, PIPE_NAMESPACE, PipeAddr, SCHEME, SCHEME_INPROC,
22 SCHEME_PIPE, SCHEME_UNIX, UnixAddr, validate_endpoint_path,
23};
24pub use error::{Error, ErrorCode, LossCause, Result, StopReason};
25pub use identity::{Fingerprint, LocalPrincipal, PeerIdentity, WindowsPrincipal};
26pub use limits::Limits;
27pub use trace::{TraceContext, TraceError};