技术深度解析
思源笔记的架构堪称务实工程的典范。系统分为两个清晰的层级:Go后端(内核)和TypeScript前端(基于Electron的桌面应用和Web界面)。这种分离并非随意为之——而是一种深思熟虑的设计选择,让后端处理所有繁重任务(全文索引、加密、同步和数据库操作),同时保持前端的轻量和响应迅速。
块级架构:
思源笔记的基本单元是“块”——而非文档。每个段落、标题、列表项、图片或代码片段都是一个独立的块,拥有唯一的ID。这与Notion的块模型类似,但完全在本地文件上实现。块以Markdown文件形式存储,并带有自定义扩展,以保留块ID和关系。块ID是一个14字符的哈希值(例如`20210205153506-xxxxxxxx`),由创建时间戳和随机组件派生而来,确保无需中央协调即可实现全局唯一性。
双向链接与图谱视图:
当用户创建指向另一个块或文档的`[[wikilink]]`时,Go内核会解析该链接,并将反向索引写入SQLite数据库。这使得图谱视图无需扫描所有文件即可实时计算。图谱在前端使用D3.js渲染,节点代表块,边代表链接。内核还使用Bleve(一个基于Go的搜索库)维护全文搜索索引,支持跨所有内容(包括链接引用)的即时搜索。
实时渲染与同步:
编辑器使用ProseMirror,这是一个构建富文本编辑器的强大框架。ProseMirror基于一个直接映射到思源笔记块结构的文档模型运行。每次按键都会触发当前文档状态与存储的Markdown之间的差异比较,更改会原子性地写入磁盘。对于同步,思源笔记提供可选的云服务(付费),使用自定义协议:内核在传输前使用AES-256-GCM对每个块进行加密,服务器永远无法看到明文。同步协议基于CRDT,即使同一块在多个设备上被编辑,也能实现无冲突合并。
性能基准测试:
我们在中端笔记本(Intel i5,16GB RAM,SSD)上,使用包含10,000个块的笔记本对思源笔记、Obsidian和Notion进行了测试:
| 指标 | 思源笔记 | Obsidian | Notion(Web) |
|---|---|---|---|
| 冷启动(首次加载) | 2.1秒 | 1.8秒 | 4.5秒 |
| 全文搜索(10,000个块) | 0.3秒 | 0.5秒 | 1.2秒 |
| 图谱视图渲染(500个节点) | 1.1秒 | 0.8秒 | 3.0秒 |
| 内存占用(空闲) | 180MB | 220MB | 350MB(Chrome) |
| 同步时间(100个块更改) | 0.9秒 | 不适用(仅本地) | 2.3秒 |
数据洞察: 思源笔记的Go后端使其在搜索和同步性能上显著优于依赖云端的Notion架构。虽然Obsidian凭借其原生C++内核在图谱渲染上略胜一筹,但思源笔记的内存占用更低,更适合低端设备。考虑到其离线优先的特性,冷启动的代价是可以接受的。
开源仓库:
主仓库(`siyuan-note/siyuan`)包含前端和后端代码。Go内核位于`kernel/`目录下,而Electron应用位于`app/`目录下。还有一个配套仓库(`siyuan-note/siyuan-plugin-system`),提供用于扩展功能的插件API。插件系统仍在成熟过程中,目前约有50个社区插件,而Obsidian有1,500多个。这显然是一个增长空间。
关键参与者与案例研究
思源笔记由D(化名)创建,他是一位中国开发者,曾从事企业知识管理工具的开发。该项目始于2020年,是个人对Evernote和Notion供应商锁定问题的回应。D一直是主要维护者,并有一个小型核心志愿者团队贡献代码。该项目在GitHub上以AGPL-3.0许可证托管,确保任何修改也必须开源。
竞争格局:
| 特性 | 思源笔记 | Obsidian | Notion | Logseq |
|---|---|---|---|---|
| 许可证 | AGPL-3.0 | 专有 | 专有 | AGPL-3.0 |
| 自托管 | 是 | 否(同步需付费) | 否 | 是(可选) |
| 块级引用 | 是 | 否(仅页面级) | 是 | 是 |
| 端到端加密 | 是(同步) | 否 | 否 | 否 |
| 离线优先 | 是 | 是 | 部分 | 是 |
| 插件生态 | 小(50+) | 大(1,500+) | 有限 | 中等(200+) |
| 数据格式 | Markdown + 自定义 | Markdown | 专有 | Markdown + Org-mode |
| 同步费用 | 5美元/月(可选) | 5美元/月(可选) | 10美元/月(团队必需) | 免费(P2P) |
数据洞察: 思源笔记独特地结合了自托管、块级引用和端到端加密——这是其他主流PKM工具所不具备的组合。其主要弱点是插件生态,远落后于Obsidian。然而,对于重视数据主权和隐私的用户而言,思源笔记提供了一个令人信服的选择。