From e0aeb032f0846d37c4bfb4f58e0e56b73bd69909 Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Wed, 30 Jul 2025 00:44:27 +0400 Subject: [PATCH] add sync server module --- packages/turso-sync/src/sync_server/mod.rs | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 packages/turso-sync/src/sync_server/mod.rs diff --git a/packages/turso-sync/src/sync_server/mod.rs b/packages/turso-sync/src/sync_server/mod.rs new file mode 100644 index 000000000..f9e9e8db1 --- /dev/null +++ b/packages/turso-sync/src/sync_server/mod.rs @@ -0,0 +1,46 @@ +use crate::Result; + +#[cfg(test)] +pub mod test; +pub mod turso; + +#[derive(Debug, serde::Deserialize)] +pub struct DbSyncInfo { + pub current_generation: usize, +} + +#[derive(Debug, serde::Deserialize)] +pub struct DbSyncStatus { + pub baton: Option, + pub status: String, + pub generation: usize, + pub max_frame_no: usize, +} + +pub trait Stream { + fn read_chunk( + &mut self, + ) -> impl std::future::Future>> + Send; +} + +pub trait SyncServer { + type Stream: Stream; + fn db_info(&self) -> impl std::future::Future> + Send; + fn db_export( + &self, + generation_id: usize, + ) -> impl std::future::Future> + Send; + fn wal_pull( + &self, + generation_id: usize, + start_frame: usize, + ) -> impl std::future::Future> + Send; + fn wal_push( + &self, + baton: Option, + generation_id: usize, + start_frame: usize, + end_frame: usize, + frames: Vec, + ) -> impl std::future::Future> + Send; +}