Hocuspocus
Hocuspocus 是一套为你的应用带来协作功能的工具集。它基于 Y.js (由 Kevin Jahns 开发),这是一款出色的用于实时同步和合并客户端改动的库。但你也可以用它来构建离线优先(offline-first)的应用,然后在之后同步变更。我们会确保解决冲突,并且始终保持所有内容同步。
什么是 Y.js?
Y.js 能够实时合并用户的更改且不会产生冲突。与其他实现相比,它性能极佳,并且“表现远超其他”(Joseph Gentle,前 Google Wave 工程师,来源)。
作为一种无冲突复制数据类型(CRDT),其应用更改的顺序无关紧要。这有点像 Git,无论更改何时提交都无影响。而且,每个数据副本的价值是相同的。
这使你能够构建高性能的实时应用,为已有应用添加协作功能,同步状态感知,并且考虑离线优先的设计。
Hocuspocus 服务器
使用 Y.js,你可以选用任何网络协议将更改发送给其他客户端,但最流行的是 WebSocket。Hocuspocus 服务器就是一个 WebSocket 后端,包含了快速入门所需的一切,方便你将 Y.js 集成进现有基础设施,并支持扩展到百万用户。
功能
- 无冲突地合并更改
- 不在乎更改何时到来
- 可同步整个应用状态
- 协作文本文编辑(与 Tiptap、Slate、Quill、Monaco 或 ProseMirror 一起)
- 集成到现有应用中
- 将更改发送到 Webhook
- 借助 Redis 扩展到数百万用户
- 使用 TypeScript 编写
- 运行于 Node.js、Bun、Deno 和 Cloudflare Workers(自 v4 起)
- 通过
@hocuspocus/provider-react提供一流的 React 绑定