Skip to main content

appcore_sync_sqlite/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/08/26 00:00:00 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/08/26 00:00:00 by dnettoRaw
8//      ###########      S: 2.0.0
9// =============================================================================
10
11//! Bounded `SQLite` persistence for Runtime-owned synchronization state.
12
13#![deny(missing_docs)]
14
15mod backup;
16mod checkpoint;
17mod config;
18mod conflict;
19mod error;
20mod integrity;
21mod log;
22mod materialization;
23mod outbox;
24mod outbox_blob;
25mod schema;
26mod separate_outbox;
27mod store;
28mod tombstone;
29mod work;
30
31pub use backup::{SqliteBackupReport, SqlitePairedBackupReport};
32pub use checkpoint::SqliteSyncCheckpointStore;
33pub use config::SqliteSyncConfig;
34pub use error::{SqliteSyncError, SqliteSyncResult};
35pub use log::SqliteReplicationLog;
36pub use outbox::SqliteSyncOutbox;
37pub use store::{sqlite_sync_capability_descriptor_v1, SqliteSyncHealth, SqliteSyncStore};
38pub use tombstone::{SqliteSyncTombstone, SqliteSyncTombstoneStore};
39
40/// Original internal `SQLite` schema version.
41pub const SQLITE_SYNC_SCHEMA_V1: u32 = 1;
42/// Current internal `SQLite` schema with bounded outbox retry metadata.
43pub const SQLITE_SYNC_SCHEMA_V2: u32 = 2;
44
45pub use work::SqliteSyncWork;
46
47pub use conflict::SqliteSyncConflictStore;
48/// Schema with durable bounded conflicts and resolutions.
49pub const SQLITE_SYNC_SCHEMA_V3: u32 = 3;
50
51pub use materialization::ObjectWriteIntentV1;
52
53mod object_pages;
54mod object_schema;
55mod objects;
56pub use object_pages::{ObjectChangesPageV1, ObjectsPageV1};
57pub use objects::{
58    ObjectHeadV1, ObjectRevisionV1, ObjectWriteResultV1, OpaqueObjectRecordV1, OpaqueObjectV1,
59    SqliteOpaqueObjectStoreV1,
60};
61/// Schema with canonical versioned opaque objects sharing sync transactions.
62pub const SQLITE_SYNC_SCHEMA_V4: u32 = 4;
63/// Schema that records whether pending messages live in the provider or a separate queue file.
64pub const SQLITE_SYNC_SCHEMA_V5: u32 = 5;