suika 图形编辑器,一款开源的基于 Canvas 实现的矢量图形编辑器,类似 Figma。
简体中文 | English

文档目前尚不完善。
运行项目,需要安装 Node.js(建议官网 LTS 版本),然后用 Node.js 安装 PNPM 包管理器:
npm install -g pnpm
进入项目文件根目录,安装依赖
pnpm install
开发环境(当文件修改后会自动更新刷新页面)
pnpm run dev
目前并没有发布 NPM 包,如果需要二次开发,需要 fork 一份自行修改源码进行修改。
构建生产用部署产物:
pnpm build
构建产物在目录:apps/suika/build.
另外,如果你对更宽泛的图形编辑器开感兴趣,也可以加我微信,备注 “图形群”,我拉你进 图形编辑器交流群。
两个群都可以加。
如果你想学习如何系统开发 Web 图形编辑器,可以看我写的 文章合集
可关注我的个人公众号,该公众号会持续更新图形编辑器相关文章。

多人协同基于 yjs 实现,并使用了 hocuspocus 库(对 yjs 的进一步封装)。
@suika/suika-multiplayer:协同的编辑器前端实现逻辑,该包拷贝了 @suika/suika(纯客户端),在其基础上加入了多人协同逻辑,比如多人光标,并调用了一些接口,如获取图纸名、当前用户信息。@suika/workbench:工作台项目,对图纸进行管理,以支持登录注册、创建图纸、打开图纸、删除图纸、授权等操作。@suika/backend:如果你要做多人协同,需要 实现后端 Restful 接口服务,这里该包用到的后端接口,并提供 基于 hocuspocus 的 websocket 服务。首先要启动后端服务器。
先安装数据库 postgres,这里建议用 Docker,然后 backend 包的根目录下创建 .env 文件,配置
DATABASE_URL="postgresql://用户名:密码@localhost:5432/mydb?schema=public"
然后进行 prisma 的迁移初始化。
pnpm run -F @suika/backend run migrate:dev
启动后端服务,端口为 5356。
pnpm run backend:dev
然后是工作台的启动,端口为 5354。
pnpm run workbench:dev
需要注册账号并登录,拿到 token,并创建好文档,拿到文档 id。之后在图形编辑器中会使用到。
pnpm run dev-m
带上文档 id,打开 http://localhost:6168/design/{id},在 cookies 加上拿到的 token 即可。这样就打开 id 对应的图纸了。
$ claude mcp add suika \
-- python -m otcore.mcp_server <graph>