1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! HiveLLM binary RPC wire layer — **wire v1, frozen**.
//!
//! One frame is `u32 LE length` + MessagePack body; the body is a
//! [`Request`] or [`Response`] in rmp-serde's externally-tagged encoding
//! over the 8-variant [`Value`] model. The normative byte definition lives
//! in `docs/spec/` (transplanted family spec); this crate is bound to it by
//! `docs/specs/SPEC-001-wire-format.md` (`WIRE-xxx` requirements).
//!
//! Canonicalization over the donor implementations (SPEC-001 §2):
//! - `Bytes` is emitted as MessagePack **bin** (WIRE-010) — ~33% smaller
//! than the int-array form every pre-Thunder Rust server emits — while
//! the legacy int-array form is accepted on decode forever (WIRE-011).
//! - `Request`/`Response` are emitted as array-encoded structs (WIRE-012);
//! map-shaped requests decode fine (WIRE-013, rmp-serde leniency).
//!
//! This crate is pure: no sockets, no product knowledge (WIRE-030). Async
//! frame helpers are available behind the `tokio` feature.
pub use Config;
pub use ;
pub use ;
pub use ;
/// Reserved frame id for server-initiated push frames (WIRE-005).
///
/// Clients must never use it as a request id; servers refuse requests
/// carrying it; client demultiplexers route it to the push hook.
pub const PUSH_ID: u32 = u32MAX;
/// Default frame-body cap: 64 MiB, validated against the length prefix
/// *before* any allocation (WIRE-020). Operators tune it per profile.
pub const DEFAULT_MAX_FRAME_BYTES: usize = 64 * 1024 * 1024;