Skip to main content

gtp/
lib.rs

1//! **Group Text Protocol** — text sub-protocol of the Group Protocol Stack.
2//!
3//! GTP is to GBP what TCP is to IP: it adds message-level semantics on top of
4//! the GBP base layer's framing and AEAD. This crate exposes:
5//!
6//! 1. [`GtpMessage`] — the CBOR-encoded text message format.
7//! 2. [`GtpClient`] — a stateful client that:
8//!    * sends text messages through a [`gbp_node::GroupNode`];
9//!    * accepts incoming plaintext payloads delivered by GBP and rejects
10//!      duplicates by `(sender_id, message_id)`.
11//!
12//! See [`gbp-protocol`] for the underlying frame format.
13//!
14//! [`gbp-protocol`]: https://crates.io/crates/gbp-protocol
15
16#![deny(missing_docs)]
17
18pub mod client;
19pub mod history;
20pub mod message;
21
22pub use client::{GtpAccept, GtpClient, GtpError};
23pub use history::{MessageHistory, Watermark};
24pub use message::{GtpContentType, GtpMessage};