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::*;