leptos_sync_core/
lib.rs

1//! Core synchronization library for Leptos applications
2//!
3//! This crate provides the foundation for local-first, offline-capable data synchronization
4//! using CRDTs (Conflict-free Replicated Data Types).
5
6pub mod collection;
7pub mod crdt;
8pub mod devtools;
9pub mod error;
10pub mod memory_pool;
11pub mod query;
12pub mod reliability;
13pub mod serialization;
14pub mod storage;
15pub mod sync;
16pub mod transport;
17pub mod validation;
18
19// Re-export multi-transport functionality
20pub use transport::multi_transport::{
21    MultiTransport, MultiTransportConfig, TransportEnum, TransportType,
22};
23
24// Re-export devtools functionality
25pub use devtools::{
26    CrdtInspection, CrdtInspector, DevTools, DevToolsConfig, DevToolsEvent, DevToolsExport,
27    PerformanceMetrics, SyncStats, TransportStats,
28};
29
30// Re-export reliability functionality
31pub use reliability::{ReliabilityConfig, ReliabilityError, ReliabilityManager};
32
33pub mod security;
34
35#[cfg(test)]
36mod wasm_tests;
37
38// Re-export main types for convenience
39pub use collection::LocalFirstCollection;
40pub use crdt::{LwwMap, LwwRegister, Mergeable, ReplicaId};
41pub use error::{CoreError, Result};
42pub use storage::{LocalStorage, StorageError};
43pub use sync::{SyncError, SyncState};
44pub use transport::{SyncTransport, TransportError};
45
46// Re-export common traits and types
47pub use async_trait::async_trait;
48pub use serde::{Deserialize, Serialize};
49
50/// Features available in this crate
51pub mod features {
52    /// Enable encryption support
53    pub const ENCRYPTION: &str = "encryption";
54
55    /// Enable compression support
56    pub const COMPRESSION: &str = "compression";
57
58    /// Enable metrics collection
59    pub const METRICS: &str = "metrics";
60
61    /// Enable distributed tracing
62    pub const TRACING: &str = "tracing";
63}