Skip to main content

csi_webserver/
lib.rs

1//! Core modules for the `csi-webserver` executable.
2//!
3//! This package is primarily run as a process (`csi-webserver`), but the
4//! library target is intentionally documented so docs.rs provides a complete
5//! technical reference for request payloads, state models, route handlers, and
6//! serial processing behavior.
7//!
8//! ## Architecture
9//!
10//! 1. `serial` maintains an ESP32 serial connection and parses frame boundaries.
11//! 2. `routes` exposes HTTP and WebSocket handlers using Axum.
12//! 3. `state` holds shared runtime channels and mutable config snapshots.
13//! 4. `models` defines API payloads, response types, and command mappers.
14//!
15//! ## Typical runtime flow
16//!
17//! 1. Configure device and parser mode through `/api/config/*` endpoints.
18//! 2. Start session via `/api/control/start`.
19//! 3. Consume frames from `/api/ws` or dump file output.
20//! 4. Inspect runtime status via `/api/control/status`.
21//!
22//! ## Public modules
23//!
24//! - [`models`] request and response schema types.
25//! - [`state`] application-wide shared state.
26//! - [`serial`] serial I/O and framing pipeline.
27//! - [`routes`] HTTP and WebSocket route handlers.
28
29pub mod models;
30pub mod routes;
31pub mod serial;
32pub mod state;