Sync Engine: The Fast and Extensible Engine for Vault Synchronization (WebDAV, S3, Google Drive)

Disclaimer

Is this plugin open source? Yes
Is this plugin completely free? Yes
Is this plugin vibe-coded beyond the author’s ability to comprehend how it works? No, Sync Engine plugin is strictly human written. It contains many points of engineering ingenuity that no AI can replicate.
Community Directory: Sync Engine
Please choose Obsidian official syncing service to support the team if you haven’t made your mind yet. Sync Engine fits you if you have personal preferences or existing infrastructure.


  Sync Engine
The extensible engine for vault synchronization.

Sync Engine is a new plugin, but not completely new. You probably know WebDAV Sync, which is my another plugin, as well as the predecessor of Sync Engine. After around one month of rewrite and another month of perfection, it has been rewritten from ground up in a modular style, and released as a new plugin, which is the Sync Engine you see right now.

Sync Engine adapts a modular architecture that no other plugins have tried: it loads modules, just like how Obsidian loads plugins. This modularity allows infinite extension of what it can do: backends, conflict resolution, sync decision, you name it. The core only focus on the most essential and necessary parts.

You can also develop your own modules, Sync Engine provides documentation and NPM package to allow easy extension, agent skill will come soon. The official module registry is hosted on GitHub and is fully transparent.

Sync Engine now supports WebDAV and S3 (via official modules), but this is only a start point. The modularity makes it able to extend to tens and hundred of backends.


Sync Engine is also probably the fastest syncing plugin, let’s see some real statistics:

Benchmark context:

  • Obsidian version: 1.13.4
  • Backend: Self-hosted Nextcloud WebDAV
  • Average ping: 400 ms
  • Average upload speed: 2.6 MiB/s
  • Average download speed: 4.8 MiB/s
  • During local testing, Nextcloud connection is delayed and bandwidth is limited to simulate middle-to-low network quality.

Benchmark result:

Item Sync Engine Remotely Save Nextcloud Sync
Version 3.0.0 + webdav module 0.1.7 0.5.25 0.7.38
2000 files upload 9.43 min 16.4 min 17.95 min
2000 files download 5.87 min 13.68 min 5.22 min
Daily simulation
(Original, 10 rounds)
Min: 1.04 s
Median: 1.44 s
Max: 48.56 s
Min: 99 s
Median: 129 s
Max: 326 s
Min: 1.27 s
Median: 2.75 s
Max: 60.55 s
Daily simulation
(Replica, 10 rounds)
Min: 1.06 s
Median: 1.72 s
Max: 3.49 s
Min: 111 s
Median: 117 s
Max: 204 s
Min: 0.4 s
Median: 3.94 s
Max: 55.33 s
Correctness validation 0 errors 0 errors 98 errors

See this page for benchmarking details.


More detail see documentation: covers usage guides, permission & safety claims, and how to develop a module.

2 Likes

I’m surprised that upload only / upload mirror or download only / download mirror options weren’t available from the start. Are they truly as complex as merging options?

Not really complex, these features will be added soon. You can write a module to achieve those sync strategies by the way.

Sadly I’m no dev, but the bidirectional sync will suffice while I wait.

Thank you for this plugin!

@dmantisk Mirror local and mirror remote sync strategies are implemented in v3.0.6.


Below is the reply to a Reddit user who posted this, Reddit shadowbanned my account for no reason so respond here. Welcome anyone to comment under the post with a link to here:

Sync Engine invents a modular system is for development flexibility and performance at user side. Words like “Sync Engine’s modular system is to evade Obsidian plugin review” are complete defamation. Not to blame anyone since users might not know the technical detail, so let me claim here:

  • Like before, all of Sync Engine’s plugin source code, official modules’ source code, documentation content & source code, and module source deployment workflows are completely open-source in the GitHub repo. All of them are scanned by Obsidian’s automated plugin review.
  • Sync Engine has clear documentation on security, plugin permissions, and implementation details, that is rare among Obsidian plugin ecosystem.
  • About the module loading, Sync Engine has a meticulously designed mechanism to protect all users from attacks often suffered by extensible Apps.
  • Sync Engine’s main function was almost completed a month before the formal release. And a large portion of time was spent on documenting and security hardening after that.

A followup to the reddit post; Does the automated plugin review system of Obsidian cover the modules of Sync Engine? If not, is it possible to make it so without significant impact on your aims for this plugin (speed/etc.)?

@dmantisk The automated plugin review already covers everything, including plugin source code, all modules, docs, and deployment pipelines.

The statistics you see in Sync Engine’s scorecard is the sum of all above.

Thank you for the clarification.

:loudspeaker: Sync Engine Now Supports Google Drive

Thanks to the contribution of Quzzar, the development of the Google Drive module has completed. Sync Engine can sync to Google Drive now!

The module uses a smart workaround in the authorization flow. Unlike Remotely Save or Google Drive Sync, Sync Engine’s Google Drive module doesn’t need a third-party server to complete the authorization; your device talks directly with Google.

Usage detail see the Google Drive page in documentation. Still in alpha, use with backup.