1#![cfg_attr(not(test), warn(clippy::unwrap_used))]
16#![cfg_attr(not(test), warn(clippy::expect_used))]
17#![cfg_attr(not(test), warn(clippy::panic))]
18#![allow(clippy::unused_async)]
20
21#![allow(missing_docs)]
53#![allow(missing_debug_implementations)]
54#![warn(rust_2018_idioms)]
55
56pub mod fwid;
58
59pub mod api;
61
62pub mod address;
64
65pub mod network;
67
68pub mod dht;
70
71pub mod dht_network_manager;
73
74pub mod transport;
76
77pub mod auth;
79
80pub mod events;
82pub mod mls;
84pub mod types;
86
87pub mod telemetry;
89
90pub mod security;
94
95pub mod identity;
97
98pub mod storage;
100
101pub mod chat;
103
104pub mod messaging;
106
107pub mod discuss;
109
110pub mod projects;
112
113pub mod threshold;
115
116pub mod quantum_crypto;
118
119pub mod utils;
121
122pub mod validation;
124
125pub mod rate_limit;
127
128pub mod production;
130
131pub mod bootstrap;
133
134pub mod error;
136
137pub mod peer_record;
139
140pub mod monotonic_counter;
142
143pub mod secure_memory;
145
146pub mod key_derivation;
148
149pub mod encrypted_key_storage;
151
152pub mod persistent_state;
154
155pub mod adaptive;
157
158pub mod config;
160
161pub mod health;
163
164pub mod geographic_enhanced_network;
166
167pub mod placement;
169
170pub use address::{AddressBook, NetworkAddress};
172
173pub use auth::{
175 DelegatedWriteAuth, MlsWriteAuth, PubKey, Sig, SingleWriteAuth, ThresholdWriteAuth, WriteAuth,
176};
177pub use bootstrap::{BootstrapCache, BootstrapManager, CacheConfig, ContactEntry};
178pub use dht::{Key, Record};
179pub use dht_network_manager::{
180 BootstrapNode, DhtNetworkConfig, DhtNetworkEvent, DhtNetworkManager, DhtNetworkOperation,
181 DhtNetworkResult, DhtPeerInfo,
182};
183pub use encrypted_key_storage::{
184 Argon2Config, DerivationPriority as KeyDerivationPriority, EncryptedKeyStorageManager,
185 KeyMetadata, PasswordValidation, SecurityLevel, StorageStats,
186};
187pub use error::{P2PError, P2pResult as Result};
188pub use events::{Subscription, TopologyEvent, device_subscribe, dht_watch, subscribe_topology};
189pub use fwid::{FourWordsV1, Key as FwKey, fw_check, fw_to_key};
190pub use health::{
191 ComponentChecker, ComponentHealth, HealthEndpoints, HealthManager, HealthResponse,
192 HealthServer, HealthStatus, PrometheusExporter,
193};
194pub use key_derivation::{
195 BatchDerivationRequest, BatchDerivationResult, DerivationPath, DerivationPriority,
196 DerivationStats, DerivedKey, HierarchicalKeyDerivation, MasterSeed,
197};
198pub use monotonic_counter::{
199 BatchUpdateRequest, BatchUpdateResult, CounterStats, MonotonicCounterSystem, PeerCounter,
200 SequenceValidationResult,
201};
202pub use network::{NodeBuilder, NodeConfig, P2PEvent, P2PNode};
203pub use telemetry::{Metrics, StreamClass, record_lookup, record_timeout, telemetry};
204pub use config::Config;
206pub use network::P2PNode as Node;
207pub use peer_record::{EndpointId, NatType, PeerDHTRecord, PeerEndpoint, SignatureCache, UserId};
208pub use persistent_state::{
209 FlushStrategy, IntegrityReport, PersistentStateManager, RecoveryMode, RecoveryStats,
210 StateChangeEvent, StateConfig, TransactionType, WalEntry,
211};
212pub use production::{ProductionConfig, ResourceManager, ResourceMetrics};
213pub use secure_memory::{
214 PoolStats, SecureMemory, SecureMemoryPool, SecureString, SecureVec, allocate_secure,
215 secure_string_with_capacity, secure_vec_with_capacity,
216};
217pub use validation::{
218 RateLimitConfig, RateLimiter, Sanitize, Validate, ValidationContext, ValidationError,
219 sanitize_string, validate_dht_key, validate_dht_value, validate_file_path,
220 validate_message_size, validate_network_address, validate_peer_id,
221};
222
223pub use storage::{FileChunker, StorageManager}; pub use chat::{Call, Channel, ChannelId, ChannelType, ChatManager, Message, MessageId, Thread};
230
231pub use discuss::{
233 Badge, Category, CategoryId, DiscussManager, Poll, Reply, ReplyId, Topic, TopicId, UserStats,
234};
235
236pub use projects::{
238 Document, DocumentId, Folder, Project, ProjectAnalytics, ProjectId, ProjectsManager,
239 WorkflowState,
240};
241
242pub use threshold::{
244 GroupMetadata, ParticipantInfo, ThresholdGroup, ThresholdGroupManager, ThresholdSignature,
245};
246
247pub use quantum_crypto::{
249 CryptoCapabilities,
250 KemAlgorithm,
251 NegotiatedAlgorithms,
252 ProtocolVersion,
253 QuantumCryptoError,
255 SignatureAlgorithm,
256 negotiate_algorithms,
258};
259
260pub use quantum_crypto::{
262 ChaCha20Poly1305Cipher,
264 EncryptedMessage,
266 HybridKem,
268 HybridKemCiphertext,
269 HybridKemPublicKey,
270 HybridKemSecretKey,
271 HybridPublicKeyEncryption,
272
273 HybridSignaturePublicKey,
275 HybridSignatureSecretKey,
276 HybridSignatureValue,
277
278 MlDsa65,
279
280 MlDsaOperations,
281
282 MlDsaPublicKey as AntMlDsaPublicKey,
284 MlDsaSecretKey as AntMlDsaSecretKey,
285 MlDsaSignature as AntMlDsaSignature,
286 MlKem768,
288 MlKemCiphertext,
289 MlKemOperations,
291 MlKemPublicKey,
293 MlKemSecretKey,
294 PqcError,
296 SaorsaPqcResult,
297
298 SharedSecret,
299 SymmetricEncryptedMessage,
300
301 SymmetricError,
302 SymmetricKey,
303
304 saorsa_pqc_init,
306};
307
308pub use quantum_crypto::ant_quic_integration::{
310 create_default_pqc_config,
312 create_pqc_only_config,
313};
314
315pub use quantum_crypto::types::{
317 FrostCommitment,
318 FrostGroupPublicKey,
319 FrostKeyShare,
320 FrostPublicKey,
322 FrostSignature,
323 GroupId,
325 HandshakeParameters,
326
327 ParticipantId,
328 PeerId as QuantumPeerId,
329 QuantumPeerIdentity,
330 SecureSession,
331 SessionId,
332 SessionState,
333};
334
335pub use placement::{
337 AuditSystem, DataPointer, DhtRecord, DiversityEnforcer, GeographicLocation, GroupBeacon,
338 NetworkRegion, NodeAd, PlacementConfig, PlacementDecision, PlacementEngine, PlacementMetrics,
339 PlacementOrchestrator, RegisterPointer, RepairSystem, StorageOrchestrator,
340 WeightedPlacementStrategy,
341};
342
343pub type PeerId = String;
349
350pub type Multiaddr = NetworkAddress;
354
355pub const VERSION: &str = env!("CARGO_PKG_VERSION");