1#![deny(unsafe_code)]
9#![warn(missing_docs)]
10
11pub mod config;
12pub mod constants;
13pub mod error;
14pub mod events;
15pub mod file_transfer;
16mod group_mesh;
17mod media_envelope;
18pub mod mls;
19pub mod mls_observability;
20pub mod protocol;
21pub mod protocol_state_storage;
22pub mod storage_conformance;
23pub mod telemetry;
24pub mod transport_manager;
25pub mod visualization;
26
27pub use config::{
28 DataConfig, EncryptionConfig, GroupConfig, OverflowPolicy, PendingQueueConfig, ProtocolConfig,
29 SecurityConfig, DEFAULT_PENDING_TTL_MS,
30};
31pub use error::{Error, EstablishmentState, Result, SessionStateError};
32pub use events::{
33 DecryptionFailureCode, DorsEscalationPhase, DorsEscalationReasonCode, DorsReasonCode, Event,
34 EventCallback, GroupInfoMember, PresenceSource, PresenceStatus, UserGroupSummary,
35};
36pub use group_mesh::{GroupRichReadiness, GroupSendOptions, RelaySyncState};
37#[cfg(feature = "data")]
43pub use offline_protocol_data::{DataValue, DOC_SIZE_WARN_BYTES, MAX_DOC_BYTES, MAX_VALUE_BYTES};
44pub use offline_protocol_services::MeshServices;
45pub use protocol::mesh_relay::{MeshRelayConfig, MeshRelayStats};
46pub use protocol::{MediaSendOptions, OfflineProtocol, SendMessageOptions};
47pub use protocol_state_storage::{
48 ProtocolStateError, ProtocolStateResult, ProtocolStateStorage,
49 MAX_PROTOCOL_STATE_RECORD_TRANSFER_BYTES,
50};
51pub use transport_manager::TransportManager;
52pub use visualization::{
53 MessageStats, NetworkLink, NetworkNode, NetworkTopology, NetworkVisualizer, NodeRole,
54};
55
56#[cfg(test)]
57mod dors_integration_tests;
58#[cfg(test)]
59mod group_mesh_tests;
60#[cfg(test)]
61mod test_identity;
62
63pub use offline_protocol_reliability::{
65 AckConfig, DeduplicatorConfig, DeduplicatorMode, DeduplicatorStats, RetryConfig,
66 RetryQueueStats,
67};
68
69pub use mls::{
71 EncryptedMessage, GroupId, GroupInfo, KeyPackageBundle, MlsManager, MlsStorage, WelcomeMessage,
72};
73pub use mls_observability::{
74 DecryptionFailureKind, MlsErrorCategory, MlsEventEmitter, MlsLifecycleEvent,
75 MlsOperationContext, NoopMlsEventEmitter,
76};
77pub use telemetry::{
78 DeviceCapabilitySnapshot, MetricsFrame, MlsVerbosity, NoopTelemetrySink, RoutingDecision,
79 RoutingPhase, RoutingReasonCode, TelemetryConfig, TelemetryRecord, TelemetrySink,
80 TransportStateEvent,
81};