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 mod virtual_disk;
172
173#[cfg(any(test, feature = "test-utils"))]
175pub mod mock_dht;
176
177pub use address::{AddressBook, NetworkAddress};
179
180pub use auth::{
182 DelegatedWriteAuth, MlsWriteAuth, PubKey, Sig, SingleWriteAuth, ThresholdWriteAuth, WriteAuth,
183};
184pub use bootstrap::{BootstrapCache, BootstrapManager, CacheConfig, ContactEntry};
185pub use dht::{Key, Record};
186pub use dht_network_manager::{
187 BootstrapNode, DhtNetworkConfig, DhtNetworkEvent, DhtNetworkManager, DhtNetworkOperation,
188 DhtNetworkResult, DhtPeerInfo,
189};
190pub use encrypted_key_storage::{
191 Argon2Config, DerivationPriority as KeyDerivationPriority, EncryptedKeyStorageManager,
192 KeyMetadata, PasswordValidation, SecurityLevel, StorageStats,
193};
194pub use error::{P2PError, P2pResult as Result};
195pub use events::{Subscription, TopologyEvent, device_subscribe, dht_watch, subscribe_topology};
196pub use fwid::{FourWordsV1, Key as FwKey, fw_check, fw_to_key};
197pub use health::{
198 ComponentChecker, ComponentHealth, HealthEndpoints, HealthManager, HealthResponse,
199 HealthServer, HealthStatus, PrometheusExporter,
200};
201pub use key_derivation::{
202 BatchDerivationRequest, BatchDerivationResult, DerivationPath, DerivationPriority,
203 DerivationStats, DerivedKey, HierarchicalKeyDerivation, MasterSeed,
204};
205pub use monotonic_counter::{
206 BatchUpdateRequest, BatchUpdateResult, CounterStats, MonotonicCounterSystem, PeerCounter,
207 SequenceValidationResult,
208};
209pub use network::{NodeBuilder, NodeConfig, P2PEvent, P2PNode};
210pub use telemetry::{Metrics, StreamClass, record_lookup, record_timeout, telemetry};
211pub use config::Config;
213pub use network::P2PNode as Node;
214pub use peer_record::{EndpointId, NatType, PeerDHTRecord, PeerEndpoint, SignatureCache, UserId};
215pub use persistent_state::{
216 FlushStrategy, IntegrityReport, PersistentStateManager, RecoveryMode, RecoveryStats,
217 StateChangeEvent, StateConfig, TransactionType, WalEntry,
218};
219pub use production::{ProductionConfig, ResourceManager, ResourceMetrics};
220pub use secure_memory::{
221 PoolStats, SecureMemory, SecureMemoryPool, SecureString, SecureVec, allocate_secure,
222 secure_string_with_capacity, secure_vec_with_capacity,
223};
224pub use validation::{
225 RateLimitConfig, RateLimiter, Sanitize, Validate, ValidationContext, ValidationError,
226 sanitize_string, validate_dht_key, validate_dht_value, validate_file_path,
227 validate_message_size, validate_network_address, validate_peer_id,
228};
229
230pub use storage::{FileChunker, StorageManager}; pub use chat::{Call, Channel, ChannelId, ChannelType, ChatManager, Message, MessageId, Thread};
237
238pub use discuss::{
240 Badge, Category, CategoryId, DiscussManager, Poll, Reply, ReplyId, Topic, TopicId, UserStats,
241};
242
243pub use projects::{
245 Document, DocumentId, Folder, Project, ProjectAnalytics, ProjectId, ProjectsManager,
246 WorkflowState,
247};
248
249pub use threshold::{
251 GroupMetadata, ParticipantInfo, ThresholdGroup, ThresholdGroupManager, ThresholdSignature,
252};
253
254pub use quantum_crypto::{
256 CryptoCapabilities,
257 KemAlgorithm,
258 NegotiatedAlgorithms,
259 ProtocolVersion,
260 QuantumCryptoError,
262 SignatureAlgorithm,
263 negotiate_algorithms,
265};
266
267pub use quantum_crypto::{
269 ChaCha20Poly1305Cipher,
271 EncryptedMessage,
273 HybridKem,
275 HybridKemCiphertext,
276 HybridKemPublicKey,
277 HybridKemSecretKey,
278 HybridPublicKeyEncryption,
279
280 HybridSignaturePublicKey,
282 HybridSignatureSecretKey,
283 HybridSignatureValue,
284
285 MlDsa65,
286
287 MlDsaOperations,
288
289 MlDsaPublicKey as AntMlDsaPublicKey,
291 MlDsaSecretKey as AntMlDsaSecretKey,
292 MlDsaSignature as AntMlDsaSignature,
293 MlKem768,
295 MlKemCiphertext,
296 MlKemOperations,
298 MlKemPublicKey,
300 MlKemSecretKey,
301 PqcError,
303 SaorsaPqcResult,
304
305 SharedSecret,
306 SymmetricEncryptedMessage,
307
308 SymmetricError,
309 SymmetricKey,
310
311 saorsa_pqc_init,
313};
314
315pub use quantum_crypto::ant_quic_integration::{
317 create_default_pqc_config,
319 create_pqc_only_config,
320};
321
322pub use quantum_crypto::types::{
324 FrostCommitment,
325 FrostGroupPublicKey,
326 FrostKeyShare,
327 FrostPublicKey,
329 FrostSignature,
330 GroupId,
332 HandshakeParameters,
333
334 ParticipantId,
335 PeerId as QuantumPeerId,
336 QuantumPeerIdentity,
337 SecureSession,
338 SessionId,
339 SessionState,
340};
341
342pub use placement::{
344 AuditSystem, DataPointer, DhtRecord, DiversityEnforcer, GeographicLocation, GroupBeacon,
345 NetworkRegion, NodeAd, PlacementConfig, PlacementDecision, PlacementEngine, PlacementMetrics,
346 PlacementOrchestrator, RegisterPointer, RepairSystem, StorageOrchestrator,
347 WeightedPlacementStrategy,
348};
349
350pub type PeerId = String;
356
357pub type Multiaddr = NetworkAddress;
361
362pub const VERSION: &str = env!("CARGO_PKG_VERSION");