Skip to main content

appcore_sync/
sync.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: sync.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/05/31 13:38:42 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/07/24 16:07:49 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Minimal sync contracts and local implementations.
12mod checkpoint;
13mod client;
14mod codec;
15mod discovery;
16mod error;
17mod log;
18mod outbox;
19mod outbox_format;
20mod outbox_journal;
21mod persistence;
22mod receiver;
23mod retry;
24mod snapshot;
25mod transport;
26mod types;
27mod wire;
28
29pub use checkpoint::{
30    FileSyncCheckpointStore, InMemorySyncCheckpointStore, SyncCheckpointStore,
31    SYNC_CHECKPOINT_FORMAT_V1,
32};
33pub use client::FollowerSyncClient;
34pub use discovery::{discover_dns_sync_peers, SyncPeerAddress, SyncPeerScheme};
35pub use error::{SyncError, SyncResult};
36pub use log::{
37    FileReplicationLog, InMemoryReplicationLog, ReplicationLog, REPLICATION_LOG_FORMAT_V1,
38};
39pub use outbox::{FileSyncOutbox, InMemorySyncOutbox, SyncOutbox, SYNC_OUTBOX_FORMAT_V2};
40pub use receiver::{SyncReceiveAck, SyncReceiverState};
41pub use retry::{SyncPushMetrics, SyncRetryPolicy};
42pub use snapshot::{ReplicationSnapshot, ReplicationSnapshotRecord, SYNC_SNAPSHOT_FORMAT_V1};
43pub use transport::{decode_sync_message, HttpSyncTransport, SyncTransport};
44pub use types::{
45    compute_events_hash, HeartbeatMessage, LeaderElection, NodeRole, PeerInfo, SyncMessage,
46    SyncStatus,
47};
48pub use wire::{
49    decode_sync_envelope, encode_sync_envelope_v1, SyncEnvelopeV1, SYNC_WIRE_SCHEMA_V1,
50};
51
52#[cfg(test)]
53pub(crate) use transport::read_http_request_body;
54
55#[cfg(test)]
56mod sync_tests;