at main 39 lines 1.4 kB view raw
1//! CRDT-backed editor with AT Protocol sync. 2//! 3//! This crate provides: 4//! - `LoroTextBuffer`: Loro-backed text buffer implementing `TextBuffer` + `UndoManager` 5//! - `CrdtDocument`: Trait for documents that can sync to AT Protocol PDS 6//! - Generic sync logic for edit records (root/diff/draft) 7//! - Worker implementation for off-main-thread CRDT operations 8//! - Collab coordination types and helpers 9 10mod buffer; 11mod coordinator; 12mod document; 13mod error; 14mod sync; 15 16pub mod worker; 17 18pub use buffer::LoroTextBuffer; 19pub use coordinator::{ 20 CoordinatorState, PEER_DISCOVERY_INTERVAL_MS, SESSION_REFRESH_INTERVAL_MS, SESSION_TTL_MINUTES, 21 compute_collab_topic, 22}; 23pub use document::{CrdtDocument, SimpleCrdtDocument, SyncState}; 24pub use error::CrdtError; 25pub use sync::{ 26 CreateRootResult, PdsEditState, RemoteDraft, SyncResult, 27 build_draft_uri, create_diff, create_edit_root, 28 find_all_edit_roots, find_diffs_for_root, find_edit_root_for_draft, 29 list_drafts, load_all_edit_states, load_edit_state_from_draft, 30 load_edit_state_from_entry, sync_to_pds, 31}; 32 33// Re-export worker types 34pub use worker::{WorkerInput, WorkerOutput}; 35#[cfg(all(target_family = "wasm", target_os = "unknown"))] 36pub use worker::EditorReactor; 37 38// Re-export Loro types that consumers need 39pub use loro::{ExportMode, LoroDoc, LoroText, VersionVector};