nomad_protocol/extensions/
mod.rs

1//! NOMAD Protocol - Extensions
2//!
3//! Implements protocol extensions for enhanced functionality beyond the core sync.
4//!
5//! ## Core Extensions
6//!
7//! | ID     | Module          | Description                                      |
8//! |--------|-----------------|--------------------------------------------------|
9//! | 0x0001 | `compression`   | zstd payload compression                         |
10//! | 0x0002 | `priority`      | Update priority levels (critical → background)   |
11//! | 0x0003 | `batching`      | Combine multiple updates into single frame       |
12//! | 0x0004 | `rate_hints`    | Server hints for acceptable update frequency     |
13//! | 0x0005 | `selective_sync`| Subscribe to specific state regions              |
14//! | 0x0006 | `checkpoint`    | Full state snapshots for recovery/initial sync   |
15//! | 0x0007 | `metadata`      | Timestamps, user IDs, causality tracking         |
16//!
17//! ## Extension Negotiation
18//!
19//! Extensions are negotiated during handshake using TLV (Type-Length-Value) format.
20//! See [`negotiation`] module for details.
21//!
22//! ## Reserved Ranges
23//!
24//! - `0x0001-0x00FF`: Core protocol extensions
25//! - `0x0100-0x0FFF`: Application-specific extensions
26//! - `0xF000-0xFFFF`: Experimental/private extensions
27
28mod batching;
29mod checkpoint;
30mod compression;
31mod metadata;
32mod negotiation;
33mod priority;
34mod rate_hints;
35mod selective_sync;
36
37pub use batching::*;
38pub use checkpoint::*;
39pub use compression::*;
40pub use metadata::*;
41pub use negotiation::*;
42pub use priority::*;
43pub use rate_hints::*;
44pub use selective_sync::*;