Crate sync15

source

Modules§

  • A module for everything needed to be a “sync client” - ie, a device which can perform a full sync of any number of collections, including managing the server state.
  • The client engine is a crate::engine(Sync Engine) used to manage the “clients” collection. The clients engine manages the client record for “this device, and also manages “commands”. In short, commands target one or more engines and instruct them to perform various operations - such as wiping all local data. These commands are used very rarely - currently the only command used in practice is for bookmarks to wipe all their data, which is sent when a desktop device restores all bookmarks from a backup. In this scenario, desktop will delete all local bookmarks then replace them with the backed up set, which without a “wipe” command would almost certainly cause other connected devices to “resurrect” the deleted bookmarks.
  • This module is used by crates which need to implement a “sync engine”. At a high-level, a “sync engine” is code which knows how to take records from a sync server, apply and reconcile them with the local data, then provide records which should be uploaded to the server.
  • Manage recording sync telemetry. Assumes some external telemetry library/code which manages submitting.

Structs§

  • Argument to Store::prepare_for_sync. See comment there for more info. Only really intended to be used by tabs engine.
  • A representation of an encrypted payload. Used as the payload in EncryptedBso and also anywhere else the sync keys might be used to encrypt/decrypt, such as send-tab payloads.
  • This is a type intended to be used to represent the guids used by sync. It has several benefits over using a String:
  • Information about a remote client in the clients collection.
  • Typesafe way to manage server timestamps without accidentally mixing them up with local ones.

Enums§

Type Aliases§