Skip to main content

Crate oxigdal_sync

Crate oxigdal_sync 

Source
Expand description

Multi-device synchronization for OxiGDAL

This crate provides advanced synchronization capabilities for distributed geospatial data management, including:

  • CRDTs (Conflict-free Replicated Data Types): LWW-Register, G-Counter, PN-Counter, OR-Set for conflict-free distributed state
  • Vector Clocks: Causality tracking for distributed events
  • Operational Transformation: Concurrent edit reconciliation
  • Multi-device Coordination: Device discovery and state management
  • Merkle Trees: Efficient change detection and synchronization
  • Delta Encoding: Bandwidth-efficient state transfer

§Example

use oxigdal_sync::crdt::LwwRegister;
use oxigdal_sync::vector_clock::VectorClock;

// Create a Last-Write-Wins register with vector clock
let mut register = LwwRegister::new("device-1".to_string(), "initial".to_string());

// Update with causality tracking
register.set("updated".to_string());

Re-exports§

pub use error::SyncError;
pub use error::SyncResult;

Modules§

coordinator
Multi-device coordination and state management
crdt
Conflict-free Replicated Data Types (CRDTs)
delta
Delta encoding for bandwidth-efficient synchronization
error
Error types for synchronization operations
merkle
Merkle tree implementation for efficient change detection
ot
Operational Transformation (OT)
vector_clock
Vector clock implementation for causality tracking

Type Aliases§

DeviceId
Device identifier type
Timestamp
Timestamp type for synchronization
VersionVector
Version vector type for causality tracking