---
title: "Hocuspocus"
description: "Hocuspocus"
canonical_url: "https://tiptap.zhcndoc.com/hocuspocus/getting-started/overview"
---

# Hocuspocus

Hocuspocus

Hocuspocus 是一套为你的应用带来协作功能的工具集。它基于 [Y.js](https://github.com/yjs/yjs) （由 Kevin Jahns 开发），这是一款出色的用于实时同步和合并客户端改动的库。但你也可以用它来构建离线优先（offline-first）的应用，然后在之后同步变更。我们会确保解决冲突，并且始终保持所有内容同步。

## 什么是 Y.js？

Y.js 能够实时合并用户的更改且不会产生冲突。与其他实现相比，它性能极佳，并且“表现远超其他”（Joseph Gentle，前 Google Wave 工程师，[来源](https://josephg.com/blog/crdts-are-the-future/)）。

作为一种无冲突复制数据类型（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`](https://tiptap.zhcndoc.com/hocuspocus/provider/react.md) 提供一流的 React 绑定
