自荐自己写的 obsidian 笔记多端实时同步的插件 obsidian-better-sync ..

基本实现了 obsidian 笔记的 macos ios win 多端端实时同步( 安卓还没测试..理论上应该是正常使用 ).
欢迎大家踊跃尝试…

地址和详细介绍:

Image

插件安装 以及 开发状态

目前这个插件正在申请上架 官方三方市场 ( 官方插件审核比较慢 )…

上架申请地址 Add plugin: Better Sync by haierkeys · Pull Request #5851 · obsidianmd/obsidian-releases · GitHub ( 欢迎围观… )

如果你想马上使用 需要手动下载安装插件…

另外 同步使用的服务端 是 基于 go + websocket + sqlite3 ..同步效率蛮高的

后续开发功能 会增加 自动同步到 各类 云存储, 比如 s3,sso,minio,webdav 等…

因为插件在审核期间.. 所以原则上 在审核期间不增加任何新功能…只做一些优化操作..

等上架后才会把更多好玩的点子全部都招呼上..

部署方案案例

目前我在用的部署方案是 用一个 claw JP 小鸡 挂了的docker版服务端…

整体使用基本无感知无打扰…

写这个插件的心路历程以及缘由:

我之前是使用 remotely sync + s3 ( CF R2 ) …

每次写完笔记都会 都会在 同步笔记 那个过程 产生严重的焦虑 外加 增加 等待同步成功的时间成本

(分析原因是 remotely sync 的执行效率以及 s3 服务的访问速度 叠加产生的 )

所以索性就自己写一个同步整套方案,来解决这个obs一直让人不淡定的痛点…

和Self-hosted LiveSync区别

在回答一个童鞋提问我认为有助于方便大家理解区别 ..我用AI整理了下段落,COPY进来

Self-hosted LiveSync 实现原理

  • 依赖 CouchDB 的 HTTP API
  • 只是开发了客户端,而非完整的 C/S 方案
  • 实时更新基于轮询或阻塞长查询实现
  • 可能导致手机端网络和电量快速消耗
  • 强依赖 CouchDB,难以实现各类扩展和联动功能
  • 设置复杂,有超长的注意事项和多个步骤,对小白用户不友好

Obsidian-Better-Sync 特点

  • 客户端和服务端完全独立实现
  • 服务端基于 Golang + Websocket + Sqlite 构建
  • 采用 Websocket 协议实现真正的多端实时同步
    • 大多数直播平台也采用此协议
    • 基于 TCP 的心跳机制,手机端比 HTTP 协议消耗更少
  • Go 程序并发处理性能高,同步速度快,用户基本无感知

扩展性与灵活性

  • 服务端独立实现,可增加多种功能(如备份到云存储或 WebDAV),目前只是一个想法,服务端尚未支持 等待 code
  • 数据库可灵活替换,支持 Sqlite(默认)或 MySQL( 需要改动几行部分源码 )
  • 采用 Sqlite 是为简化用户部署,无需额外搭建数据库环境

易用性

  • 设置超级方便:服务端架设好后,只需在插件端粘贴配置即可完成
  • 相比 Self-hosted LiveSync 的复杂设置更加用户友好

安全性

  • 基于 SSL 的 WSS 协议加密已足够安全
  • 作者认为额外的端到端加密可能是多余的

注:作者表示会注意功能边界,避免与官方同步功能过度竞争导致插件被下架

113 个赞

等上架后体验一下。

哇 感觉这个解决了obsidian很大一个痛点

支持,关注~

感谢推荐

1 个赞

嗯… obs插件审核那是真的慢… 通说 add 插件 就一个老哥兢兢业业 的review代码… 我上次提交插件.. 给我各种提建议…

ob 审核我直接放弃了,写过一个插件很简单的功能,给我 8 条修改建议,我直接不上架了

期待正式上架,看展示效果还可以。

等一手支持云存储,佬加油

目前用的livesync,不知道和楼主的比起来有什么区别

哈哈哈哈哈… 我还好.. 之前的插件第一次提交的时候也差不多.. 他给我的审核直接就是 请不要使用 任何 node 的特性 在插件里… 因为去掉了node 的特性就相当于完全重写一个插件 本来 还是 从别人的clone 二次修改… 最后就 重新写了一个新的提交了上去

区别应该不大吧… 最大的区别就是 部署简单. 设置简单..执行效率高…

哈哈哈哈,属实是跟官方抢饭吃

能同步插件和配置文件不

没事官方不差咱们这三瓜两枣.. 而且关键是 官方支持 同步任何附件… obsidian-better-sync 只关注笔记文本内容…

目前不支持…

膜拜大佬

想支持的话.. 得等到上线之后偷偷支持… 毕竟官方的sdk 里没有插件更新相关的事件… :joy:

查一下livesync是如何支持的,他就可以实现插件和obsidian设置的同步

目前在使用self-hosted livesync这个插件,基本能实现实施多端同步,缺点是不知道怎么备份数据库。请问下你这个插件更这个相比有什么特色或者优势 :grinning_face: