搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

一款用 Go 编写的原生白板,不依赖 WebView 或 JavaScript,可读写 tldraw 文件。

120
8
Go
今天创建

项目介绍

godraw 是一款参考 tldraw 的本地原生白板,基于 Go 和 MyGo 的原生 UI 实现,不使用 WebView,也不依赖 JavaScript。它能直接读写 tldraw 的 .tldr 文件,因此可以和 tldraw 配合使用,而不是只能替代它。项目是独立重写,与 tldraw, Inc. 没有关联。

功能覆盖比较完整的绘图流程:选择、手形、绘制、橡皮擦、箭头、文本、便签、图片、直线、荧光笔、激光笔、画框及 20 种几何形状;多选与框选;移动、缩放、旋转、翻转、复制、编组/取消编组、锁定、对齐、吸附和网格。每幅画有独立窗口,并支持自动保存、崩溃恢复、最近打开以及跟随外部文件修改。导出可选 PNG 或 SVG,范围可以是选区或整页。完整工具和编辑能力见 README。

适合需要桌面原生白板、并且要打开或保存 tldraw 兼容文件的人,尤其是希望用 Go 应用替代浏览器编辑器的用户。

快速使用

前提是已安装 Go 工具链。在仓库目录执行:

go run .                    # 新建一个绘图
go run . drawing.tldr       # 打开已有文件

如果想看三页示例(带动态连线的海报、包含 1,700 条笔触的流场和样式表):

go run . examples/showcase.tldr

示例可用 go run ./examples/showcase 重新生成,详见展示说明。要打包 macOS 应用和 .dmg,使用 go tool mygo build;运行测试使用 go test ./...(运行命令)。

tldraw 兼容性

文件按 @tldraw/tlschema 5.6.0 的版本写入,tldraw 打开时会自行迁移。godraw 不建模但会保留并写回的内容包括:未知类型的图形、记录的 meta、未编辑过的富文本。嵌入、书签和视频等未知图形会显示为带标签的方框(兼容性说明)。

已知差异:

  • 富文本按纯文本显示;编辑后会保存为普通段落。
  • 剪贴板使用 godraw 自己的格式,图形无法直接粘贴到 tldraw;两个应用之间应通过 .tldr 文件转移画作。
  • 手绘笔触和箭头走线使用 godraw 自己的算法,效果与 tldraw 相似但不完全一致。
  • SVG 导出只写字体名称,不嵌入字体。

未支持的功能

图片裁剪、便签克隆手柄、视频播放和多人协作尚未实现。README 没有声明许可证,因此复用和再分发的条款未在该文件中说明。

HotRepo 点评

godraw 在 2026-11-02 进入 HotRepo 新项目榜,记录到 112 Star、8 Fork,增长窗口为当天 09:47 至 17:45 UTC。暂无 GitHub 日榜名次记录,且只有这一条快照,因此只能确认当天的数量,不足以判断趋势。更值得关注的技术信息是原生实现的范围:用 Go 完成 tldraw 兼容的 .tldr 读写和绘图界面,对未知记录做保留处理,并把文档层与 UI 分开测试(目录结构)。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。