Expand description
Sync wire protocol: frame format and message types.
Frame format: [msg_type: 1B][length: 4B LE][rkyv/msgpack body]
Message types:
0x01Handshake (client → server)0x02HandshakeAck (server → client)0x10DeltaPush (client → server)0x11DeltaAck (server → client)0x12DeltaReject (server → client)0x14CollectionPurged (server → client)0x20ShapeSubscribe (client → server)0x21ShapeSnapshot (server → client)0x22ShapeDelta (server → client)0x23ShapeUnsubscribe (client → server)0x30VectorClockSync (bidirectional)0x40TimeseriesPush (client → server)0x41TimeseriesAck (server → client)0x50ResyncRequest (bidirectional)0x52Throttle (client → server)0x60TokenRefresh (client → server)0x61TokenRefreshAck (server → client)0x70DefinitionSync (server → client)0x80PresenceUpdate (client → server)0x81PresenceBroadcast (server → all subscribers)0x82PresenceLeave (server → all subscribers)0x90ArrayDelta (client → server)0x91ArrayDeltaBatch (client → server)0x92ArraySnapshot (server → client)0x93ArraySnapshotChunk (server → client)0x94ArraySchema (bidirectional)0x95ArrayAck (client → server)0x96ArrayReject (server → client)0x97ArrayCatchupRequest (client → server)0xA0ColumnarInsert (client → server)0xA1ColumnarInsertAck (server → client)0xA2VectorInsert (client → server)0xA3VectorInsertAck (server → client)0xA4VectorDelete (client → server)0xA5VectorDeleteAck (server → client)0xA6FtsIndex (client → server)0xA7FtsIndexAck (server → client)0xA8FtsDelete (client → server)0xA9FtsDeleteAck (server → client)0xAASpatialInsert (client → server)0xABSpatialInsertAck (server → client)0xACSpatialDelete (client → server)0xADSpatialDeleteAck (server → client)0xFFPing/Pong (bidirectional)
Re-exports§
pub use array::ArrayAckMsg;pub use array::ArrayCatchupRequestMsg;pub use array::ArrayDeltaBatchMsg;pub use array::ArrayDeltaMsg;pub use array::ArrayRejectMsg;pub use array::ArrayRejectReason;pub use array::ArraySchemaSyncMsg;pub use array::ArraySnapshotChunkMsg;pub use array::ArraySnapshotMsg;pub use columnar::ColumnarInsertAckMsg;pub use columnar::ColumnarInsertMsg;pub use delta::CollectionPurgedMsg;pub use delta::DeltaAckMsg;pub use delta::DeltaPushMsg;pub use delta::DeltaRejectMsg;pub use frame::SyncFrame;pub use frame::SyncMessageType;pub use fts::FtsDeleteAckMsg;pub use fts::FtsDeleteMsg;pub use fts::FtsIndexAckMsg;pub use fts::FtsIndexMsg;pub use presence::PeerPresence;pub use presence::PresenceBroadcastMsg;pub use presence::PresenceLeaveMsg;pub use presence::PresenceUpdateMsg;pub use resync::ResyncReason;pub use resync::ResyncRequestMsg;pub use resync::ThrottleMsg;pub use session::HandshakeAckMsg;pub use session::HandshakeMsg;pub use session::PingPongMsg;pub use session::TokenRefreshAckMsg;pub use session::TokenRefreshMsg;pub use shape::ShapeDeltaMsg;pub use shape::ShapeSnapshotMsg;pub use shape::ShapeSubscribeMsg;pub use shape::ShapeUnsubscribeMsg;pub use shape::VectorClockSyncMsg;pub use spatial::SpatialDeleteAckMsg;pub use spatial::SpatialDeleteMsg;pub use spatial::SpatialInsertAckMsg;pub use spatial::SpatialInsertMsg;pub use timeseries::DefinitionSyncMsg;pub use timeseries::TimeseriesAckMsg;pub use timeseries::TimeseriesPushMsg;pub use vector::VectorDeleteAckMsg;pub use vector::VectorDeleteMsg;pub use vector::VectorInsertAckMsg;pub use vector::VectorInsertMsg;
Modules§
- array
- Array CRDT sync wire envelopes.
- columnar
- Columnar insert sync messages (client → server / server → client).
- delta
- Delta push / ack / reject / collection-purged messages.
- frame
- Wire frame format and message-type discriminants.
- fts
- FTS index/delete sync messages (client → server / server → client).
- presence
- Presence / awareness messages.
- resync
- Re-sync request and throttle messages.
- session
- Session lifecycle messages: handshake, token refresh, keepalive.
- shape
- Shape subscribe/snapshot/delta/unsubscribe + vector clock sync messages.
- spatial
- Spatial insert/delete sync messages (client → server / server → client).
- timeseries
- Timeseries ingest + definition-sync messages.
- vector
- Vector insert/delete sync messages (client → server / server → client).