Files
wz-phone/crates/wzp-proto/src/lib.rs
2026-05-11 11:18:15 +04:00

41 lines
1.4 KiB
Rust

//! WarzonePhone Protocol — shared types, traits, and core logic.
//!
//! This crate defines the contracts between all other wzp-* crates.
//! It contains:
//! - Wire format types (MediaHeader, MediaPacket, SignalMessage)
//! - Codec, FEC, crypto, and transport trait definitions
//! - Adaptive quality controller
//! - Jitter buffer
//! - Session state machine
//!
//! Compatible with the Warzone messenger identity model:
//! - Identity = 32-byte seed → HKDF → Ed25519 (signing) + X25519 (encryption)
//! - Fingerprint = SHA-256(Ed25519 pub)[:16]
pub mod bandwidth;
pub mod codec_id;
pub mod dred_tuner;
pub mod error;
pub mod jitter;
pub mod media_type;
pub mod packet;
pub mod quality;
pub mod session;
pub mod traits;
// Re-export key types at crate root for convenience.
pub use bandwidth::{BandwidthEstimator, CongestionState};
pub use codec_id::{CodecId, QualityProfile};
pub use dred_tuner::{DredTuner, DredTuning};
pub use error::*;
pub use media_type::MediaType;
pub use packet::{
CallAcceptMode, FRAME_TYPE_FULL, FRAME_TYPE_MINI, HangupReason, MediaHeader, MediaHeaderV1,
MediaHeaderV2, MediaPacket, MiniFrameContext, MiniFrameContextV1, MiniFrameContextV2,
MiniHeader, MiniHeaderV1, MiniHeaderV2, PresenceUser, QualityReport, RoomParticipant,
SignalMessage, TrunkEntry, TrunkFrame,
};
pub use quality::{AdaptiveQualityController, NetworkContext, Tier};
pub use session::{Session, SessionEvent, SessionState};
pub use traits::*;