appcore-sync 2.0.0-alpha.2

Conservative sync contracts and local replication helpers for AppCore Runtime.
Documentation
// =============================================================================
//        #######
//     ###       ###     F: sync.rs
//    ##   ## ##   ##    P: AppCore-Runtime
//         ## ##
//                       C: 2026/05/31 13:38:42 by dnettoRaw
//    ##   ## ##   ##    U: 2026/07/24 16:07:49 by dnettoRaw
//      ###########      S: 1.0.1-rc.8
// =============================================================================

//! Minimal sync contracts and local implementations.
mod checkpoint;
mod client;
mod codec;
mod discovery;
mod error;
mod log;
mod log_file;
mod log_file_format;
mod message_json;
mod outbox;
mod outbox_format;
mod outbox_journal;
mod outbox_journal_state;
mod outbox_journal_view;
mod outbox_size;
mod outbox_stream;
mod persistence;
mod receiver;
mod retry;
mod snapshot;
mod transport;
mod types;
mod wire;

pub use checkpoint::{
    FileSyncCheckpointStore, InMemorySyncCheckpointStore, SyncCheckpointStore,
    MAX_CHECKPOINT_FILE_BYTES, MAX_CHECKPOINT_PEER_ID_BYTES, MAX_CHECKPOINT_RECORDS,
    SYNC_CHECKPOINT_FORMAT_V1,
};
pub use client::FollowerSyncClient;
pub use discovery::{discover_dns_sync_peers, SyncPeerAddress, SyncPeerScheme};
pub use error::{SyncError, SyncResult};
pub use log::{
    FileReplicationLog, InMemoryReplicationLog, ReplicationLog, MAX_REPLICATION_PAGE_BYTES,
    MAX_REPLICATION_PAGE_RECORDS, MAX_SYNC_BATCH_PAYLOAD_BYTES, REPLICATION_LOG_FORMAT_V1,
};
pub use message_json::write_sync_message_json;
pub use outbox::{
    FileSyncOutbox, InMemorySyncOutbox, SyncOutbox, SyncOutboxReceipt, SyncOutboxStats,
    MAX_OUTBOX_PAGE_BYTES, MAX_OUTBOX_PAGE_MESSAGES, SYNC_OUTBOX_FORMAT_V2,
};
pub use outbox_size::encoded_sync_message_bytes;
pub use receiver::{SyncReceiveAck, SyncReceiverState};
pub use retry::{SyncPushMetrics, SyncRetryPolicy};
pub use snapshot::{ReplicationSnapshot, ReplicationSnapshotRecord, SYNC_SNAPSHOT_FORMAT_V1};
pub use transport::{
    decode_sync_message, HttpSyncTransport, SyncTransport, MAX_SYNC_REQUEST_BODY_BYTES,
};
pub use types::{
    compute_events_hash, HeartbeatMessage, LeaderElection, NodeRole, PeerInfo, SyncMessage,
    SyncStatus,
};
pub use wire::{
    decode_sync_envelope, encode_sync_envelope_v1, SyncEnvelopeV1, SYNC_WIRE_SCHEMA_V1,
};

#[cfg(test)]
pub(crate) use transport::read_http_request_body;

#[cfg(test)]
mod sync_tests;