Skip to content

distsystem/buyan

Repository files navigation

Buyan(POC)

一个极简网页:只读浏览本地 Git 仓库文件;对 collab.json 里注册的“协作文件”用 Loro + CodeMirror 6 实时协作编辑。

运行

前置:Rust(stable)、Node.js 22+、pnpm。

UI 样式:使用 Pico CSS(CDN)+ public/app.css(布局)。离线环境可把 Pico CSS 下载到本地并替换 public/index.html 里的 <link>

pnpm install
pnpm build
REPO_DIR=/abs/path/to/your/repo cargo run

打开:http://localhost:8787(可用 PORT 修改端口)。

也可以用一条命令(会先构建前端再启动后端):

REPO_DIR=/abs/path/to/your/repo pnpm start

使用说明

  • 左侧 Repo Files:来自 git -C $REPO_DIR ls-files,默认只读打开;可在只读视图点击“标记为协作”切换为协作编辑。
  • 左侧 Collab Files:来自 collab.json;点击后进入协作编辑(仅内存态,不写回仓库)。
  • “创建”协作文件:输入文件名(会自动补全 collab/ 前缀),服务端只做注册,不会写入仓库。

接口

  • GET /api/repo/list -> { files: string[] }
  • GET /api/repo/file?path=... -> 文本内容(最大 1MB)
  • GET /api/collab/list -> { files: string[] }
  • POST /api/collab/create { path } -> { ok: true }
  • WS /ws?path=...:加入即下发全量 snapshot,随后广播 update(仅允许已注册的协作路径)

限制与取舍

  • 不做持久化:协作文档只存在内存,服务重启会丢编辑内容(但协作文件“列表”会写入 collab.json)。
  • 不做 presence/光标、多语言高亮、文件树等功能。
  • 新连接直接下发全量快照(POC 简化)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors