reddb_server/wire/redwire/mod.rs
1//! RedWire — RedDB's binary TCP / TLS wire protocol with auth
2//! handshake, multiplex, compression, and version negotiation.
3//!
4//! See `.red/adr/0001-redwire-tcp-protocol.md`. The protocol is
5//! gated on a `0xFE` startup magic byte so the listener can share
6//! a port with HTTP and gRPC behind the service router.
7//!
8//! Layered API:
9//! - `frame` — frame struct + MessageKind + flags
10//! - `codec` — encode/decode (16-byte header + payload)
11//! - `auth` — handshake state machine
12//! - `session` — per-connection dispatch loop
13//! - `listener` — TCP / TLS / Unix accept
14
15pub mod auth;
16pub mod input_stream;
17pub mod listener;
18pub mod output_stream;
19pub mod queue_wait;
20pub mod session;
21
22#[cfg(unix)]
23pub use listener::start_redwire_unix_listener;
24pub use listener::{
25 start_redwire_listener, start_redwire_listener_on, start_redwire_tls_listener, RedWireConfig,
26};
27
28pub use reddb_wire::redwire::{
29 decode_frame, encode_frame, validate_minor_version, validate_startup_magic, BuildError, Flags,
30 Frame, FrameBuilder, FrameError, MessageKind, DEFAULT_REDWIRE_PORT, FRAME_HEADER_SIZE,
31 MAX_FRAME_SIZE, MAX_KNOWN_MINOR_VERSION, REDWIRE_MAGIC,
32};