Skip to main content

nexus_web/
lib.rs

1//! nexus-web — low-latency web protocol primitives.
2//!
3//! Sans-IO protocol implementations that operate on byte slices.
4//! No async runtime, no I/O layer — pure protocol state machines.
5//!
6//! Extracted from [`nexus-net`](https://docs.rs/nexus-net) 0.7.x.
7//! Protocol code moved here; networking primitives (buffers, TLS,
8//! wire abstractions) remain in nexus-net and are re-exported below.
9//!
10//! # Modules
11//!
12//! - [`ws`] — WebSocket framing (RFC 6455)
13//! - [`http`] — HTTP/1.1 response parsing, chunked decoding, request/response writers
14//! - [`rest`] — HTTP/1.1 REST client (`RequestWriter`, `Client`, typestate builder)
15//!
16//! # Primitives
17//!
18//! Buffer types, TLS, and wire abstractions live in
19//! [`nexus-net`](https://docs.rs/nexus-net) and are re-exported here
20//! for convenience.
21
22#![warn(missing_docs)]
23
24pub mod http;
25pub mod rest;
26pub mod ws;
27
28// Re-export nexus-net primitives used in our public API so downstream
29// crates don't need to depend on nexus-net directly.
30pub use nexus_net::buf;
31pub use nexus_net::maybe_tls;
32pub use nexus_net::wire;
33pub use nexus_net::{MaybeTls, ParserSink, WireStream};
34
35#[cfg(feature = "tls")]
36pub use nexus_net::tls;