GitHub 热门项目推荐:wordcraft(Rust|15069 Star)

这个项目有什么用

WordCraft 是一个用纯 Rust 编写的开源文字处理器,官方描述为「Microsoft Word 的 clean-room 重实现」。它提供熟悉的功能区(ribbon)、样式、表格、修订跟踪、引用与邮件合并,读写 .docx,并可在 macOS、Windows、Linux、BSD 以及浏览器(WebAssembly)中运行。

它主要解决两类问题:一是给需要离线、注重隐私的文档编辑场景提供一个不依赖 Electron/Tauri 的原生方案;二是把编辑器的每一个动作都抽象为带 id 的命令,从而让脚本和 AI agent 也能驱动文档处理。

典型使用场景

  • 日常撰写与排版:从模板新建、编辑文档属性、导出 PDF。
  • 文档审阅:修订跟踪、边距批注、接受/拒绝修改、拼写与语法检查。
  • 批量或自动化处理:用命令行工具转换格式、抽取文本、以 JSON 查看结构。
  • 让 AI agent 操作文档:通过 MCP server 或控制通道驱动正在运行的应用。

适合希望本地离线处理文档的个人开发者、需要把文档编辑嵌入自动化流程的团队,以及关注开源与隐私的用户。

核心特性

  • 熟悉的交互:功能区标签、快捷键与行为贴近传统文字处理器,例如 Enter 续写列表、Tab 降级列表、Ctrl/⌘+B 加粗光标所在单词、F4 重复、F7 拼写检查、F8 扩展选区。
  • 格式兼容面广:读写 .docx(OOXML),也支持 .odt、.rtf、.html、.md、.tex(LaTeX)、.txt,可打开旧版 97-2003 .doc,导出带真实可选文本、链接与书签的 PDF。
  • 性能取向:段落布局有缓存,README 给出的数据是在 188 页文档中打字重排约 1.4 ms,页面按需渲染。
  • 一套代码多端运行:macOS、Windows、Linux、BSD 与 Web 共用同一 Rust 代码库,基于 GPU 上的原生 egui,不使用 Electron 或 Tauri。
  • 为 agent 设计:每个动作都是带 id 的命令,同一套 422 个命令驱动功能区、快捷键、命令搜索、命令行工具、JSON 控制通道与 MCP server。
  • 离线与开放:拼写、语法等功能均离线工作;采用 MIT OR Apache-2.0 双许可,clean-room 实现,资源为原创或开放授权。

怎么安装

README 未提供传统意义上的「安装章节」,主要给出两种获取方式:从 GitHub Releases 下载预编译版本,或从源码构建。从源码构建的前提是具备 Rust 工具链(README 未说明具体版本要求)。

  1. 克隆仓库并进入目录:
    git clone https://github.com/storytold/wordcraft
    cd wordcraft
  2. 直接以 release 模式运行桌面应用(会带上示例文档):
    cargo run --release -p wordcraft -- --sample
  3. 如需在浏览器中运行,进入 Web 应用目录并用 trunk 启动:
    cd apps/wordcraft-web && trunk serve
  4. 或者从 GitHub 的 latest release 页面下载对应平台的构建产物,文件名中带版本号,SHA256SUMS.txt 列出了每个文件的校验和。

Windows 平台的安装包与可执行文件带代码签名。若应用在 Windows 上无法打开,README 说明桌面应用默认只初始化 DirectX 12,可用 WGPU_BACKEND 覆盖默认值排查,例如在 PowerShell 中:

$env:WGPU_BACKEND = "vulkan"
& .wordcraft.exe

怎么使用

最基础的用法是启动桌面应用并打开一个文档:

cargo run --release -p wordcraft -- report.docx

命令行工具 wordcraft-cli 提供了更轻量的处理方式,例如格式转换与纯文本抽取:

wordcraft-cli convert report.docx report.pdf        # docx, pdf, odt, rtf, html, md, tex, txt, png
wordcraft-cli text report.docx                      # plain text
wordcraft-cli inspect report.docx                   # structure as JSON

进阶用法之一是把命令序列写进脚本执行,例如先选中文本再设为加粗并保存:

wordcraft-cli run --template sample 
  --cmd 'select.text={"text":"Membership"}' --cmd format.bold --save out.docx

进阶用法之二是接入 MCP,让 agent 以无头方式操作文档,或连接到正在运行的应用:

claude mcp add wordcraft -- wordcraft-cli mcp                  # headless documents
# confine the agent to folders: wordcraft-cli mcp --automation-read-root DIR --automation-write-root DIR
wordcraft --control 7981 &                                     # or drive the running app…
claude mcp add wordcraft-app -- wordcraft-cli mcp --connect 127.0.0.1:7981

README 列出的工具包括 list_commands、execute、batch、type_text、select_text、inspect_document、render_page、save_document,连接运行中的应用后还有 screenshot、click 和 key。宏可以录制任意命令序列并回放(tools.recordMacro、tools.macros)。

适用场景与注意事项

  • 适合需要离线、本地处理文档并导出 PDF 的场景,也适合把文档编辑接入自动化流程或 AI agent 工作流的团队。
  • 功能完整度需要自行核对:README 明确建议参考 ROADMAP.md、docs/target-app-parity.md 与生成的 docs/parity-checklist.md 了解各区域的实际可用情况,不要默认与目标应用完全对齐。
  • 许可证为 MIT OR Apache-2.0 双许可,使用时按对应条款处理;项目为 clean-room 实现,资源为原创或开放授权。
  • 桌面端日志写入本地文件(Linux 在 ~/.config/wordcraft/logs/,macOS 在 ~/Library/Application Support/WordCraft/logs/,Windows 在 %APPDATA%WordCraftlogs),反馈问题时需注意其中可能包含的路径信息;README 说明文档正文不会被记录。
  • 源码构建需要 Rust 工具链,Web 端需要 trunk,README 未说明具体版本要求。

项目地址

仓库地址:https://github.com/storytold/wordcraft
作者/组织:storytold(ArtCraft 团队)
项目主页:https://getartcraft.com/apps/wordcraft

WordCraft 以纯 Rust 实现跨平台文档编辑,并把命令体系开放给脚本与 agent,是否满足你的需求,建议先对照其路线图与功能清单再决定。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享