Skip to main content

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,
26    start_redwire_tls_listener_on, RedWireConfig,
27};
28
29pub use reddb_wire::redwire::{
30    decode_frame, encode_frame, validate_minor_version, validate_startup_magic, BuildError, Flags,
31    Frame, FrameBuilder, FrameError, MessageKind, DEFAULT_REDWIRE_PORT, FRAME_HEADER_SIZE,
32    MAX_FRAME_SIZE, MAX_KNOWN_MINOR_VERSION, REDWIRE_MAGIC,
33};