ArtCraft 开源纯 Rust 重写的 Word 兼容文字处理器 WordCraft
An open-source, clean-room reimplementation of Microsoft Word in pure Rust
ArtCraft 团队发布开源文字处理器 WordCraft,用纯 Rust 从公开规范和观察出发重新实现 Microsoft Word 的工作流,支持 ribbon、样式、表格、修订、引用和邮件合并,可读写 .docx 并导出 PDF。
写作与文档设计;一个开源、净室重新实现的 Microsoft Word,用纯 Rust 重写。
一个快速、开源的文字处理器,拥有你熟悉的 Word 工作流程:功能区、样式、
表格、修订、引用和邮件合并。它读写 .docx,原生运行于
macOS、Windows、Linux 和 BSD,并通过 WebAssembly 在浏览器中运行。
由 ArtCraft 团队打造。
getartcraft.com 上的 WordCraft · ArtCraft · 所有 Crafting 应用
The Open Studio Handbook,WordCraft 的内置示例:功能区、实时样式库、标尺和导航窗格。
注意
ArtCraft 是一个来自各行各业的艺术家社区。画家、摄影师、 电影制作人、插画师、设计师、动画师、爱好者,以及上周才拿起铅笔的人。 如果你创作东西,你就是我们中的一员。来 Discord 打个招呼吧。
导览 · 为什么选择 WordCraft · 目前可用的功能 · 快速开始 · 面向智能体 · 架构 · 路线图 · 下载 · Crafting 应用 · 许可证与致谢
导览
下面的每张截图都是 WordCraft 本身,由其自带的 UI 测试框架离屏渲染
(cargo run -p wordcraft-ui-egui --example ui_shot)。
为什么选择 WordCraft
- 熟悉。Word 的功能区选项卡、组、快捷键和行为:Enter 继续列表, Tab 将其降级,Ctrl/⌘+B 将光标下的单词加粗,样式库实时预览样式, F4 重复,F7 检查拼写,F8 扩展选区。
- 你的文件。打开和保存 .docx (OOXML),也支持 .odt、.rtf、.html、.md、.tex (LaTeX)、.txt;打开 Word 97-2003 .doc;导出 PDF ,带有真实、可选择的文本、链接和书签。
- 快速。段落布局被缓存,因此在 188 页的文档中输入时,重新布局约需 1.4 毫秒;页面按需渲染。
- 无处不在。一套 Rust 代码库适用于 macOS、Windows、Linux、BSD 和 Web。没有 Electron,没有 Tauri:GPU 上的原生 egui。
- 为智能体打造。每个操作都是带 id 的命令。同样的 422 条命令驱动 功能区、键盘快捷键、命令搜索、命令行工具、JSON 控制通道和 MCP 服务器。
- 私密。拼写、语法和其他一切均离线工作。
- 开放。MIT OR Apache-2.0。净室:基于公开规范和观察构建, 每个资源均为原创或开放许可。
目前可用的功能
| 领域 | 亮点 |
|---|---|
| 写作 | 使用输入法快速输入、智能引号、自动更正、列表自动套用格式(* 、1. )、破折号;单词、句子、段落选择;拖动选择;带格式的剪贴板;撤销/重做;使用正则表达式查找和替换 |
| 格式 | 字体、字号、粗体/斜体/下划线样式、删除线、上标/下标、全部大写、突出显示、颜色、字符间距、格式刷、更改大小写、清除格式 |
| 段落 | 对齐、缩进(可在标尺上拖动)、间距、行距、带前导符的制表位、边框、底纹、与下段同页、孤行/寡行控制 |
| 样式 | 内置样式集、实时预览库、样式窗格、创建/修改/更新样式、样式集、主题 |
| 列表 | 项目符号、编号、多级、重新开始、设置值、自定义格式 |
| 表格 | 通过网格插入、合并/拆分、带镶边行的样式、边框、底纹、跨页重复标题行、跨页断开的行、排序、公式、文本 ↔ 表格 |
| 页面 | 页边距、方向、大小、分栏、分页/分栏/分节符、页眉和页脚(首页、奇偶页)、页码、水印、页面边框、行号、垂直对齐、首字下沉、自动断字 |
| 对象 | 图片(调整大小、裁剪、重新着色、亮度/对比度、透明度、删除背景、图片样式、旋转)、形状、文本框、带文字环绕的浮动位置(四周型、上下型、衬于文字下方或浮于文字上方) |
| 引用 | 目录、脚注和尾注、引文和参考文献(APA、MLA、Chicago、IEEE)、题注、图表目录、交叉引用、索引、引文目录 |
| 审阅 | 带建议的拼写和语法检查、同义词库、字数统计、边距批注框或窗格中的批注、修订、接受/拒绝、比较文档、限制编辑、辅助功能检查器、文档检查器 |
| 邮件 | 从 CSV 进行邮件合并、合并域、地址块、问候语、规则、预览、完成并合并到文档;信封和标签 |
| 视图 | 打印布局、Web 布局、草稿、阅读模式、专注、缩放、单页/多页、页宽、导航窗格、标尺、网格线、深色模式;界面支持英语、简体中文、繁體中文、日本語、Português (Brasil)、Español、Українська、Српски / Srpski、Eesti、Türkçe 或 Русский(默认跟随系统语言) |
| 文件 | .docx 读写(可在 Word 中打开)、导入 Word 97-2003 .doc、导出 PDF、.odt、.rtf、.html、.md、.tex、.txt 导入/导出、页面图像 |
按区域逐一给出的真实情况见 ROADMAP.md、 对等性评估以及生成的 功能清单。
快速开始
git clone https://github.com/storytold/wordcraft cd wordcraft cargo run --release -p wordcraft -- --sample # the desktop app with the sample document cargo run --release -p wordcraft -- report.docx # open a document
命令行:
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
Web:cd apps/wordcraft-web && trunk serve,然后打开 http://127.0.0.1:8771/?sample。
面向智能体:CLI 和 MCP
WordCraft 的设计目标是既可由人也可由 AI 智能体驱动。
claude mcp add wordcraft -- wordcraft-cli mcp # headless documents wordcraft --control 7981 & # or drive the running app… claude mcp add wordcraft-app -- wordcraft-cli mcp --connect 127.0.0.1:7981
工具包括 list_commands、execute、batch、type_text、select_text、inspect_document、
render_page、save_document,以及在应用运行时使用 screenshot、click 和 key。智能体
可通过 inspect_document 检查其工作,无需截图。参见 docs/mcp.md
和控制协议。宏可记录任意命令序列并
回放(tools.recordMacro、tools.macros)。
日志
桌面应用将其日志记录写入标准错误,并写入其偏好设置旁边的 logs/wordcraft.log:在 Linux 上为 $XDG_CONFIG_HOME/wordcraft/logs/(默认 ~/.config/wordcraft/logs/),在 macOS 上为 ~/Library/Application Support/WordCraft/logs/,在 Windows 上为 %APPDATA%\WordCraft\logs\。从桌面菜单或 Dock 启动时没有终端,因此这个文件就是提交错误报告时要附上的内容:.docx 中无法读取的部分、PDF 导出时不得不舍弃的图片或字体,以及命令守卫恢复的 panic 都会记录在那里。每次启动都会把上一次的日志移到 wordcraft.1.log(再把那一个移到 wordcraft.2.log),因此崩溃运行的日志能在下次启动后保留下来;日志增长到 16 MiB 时停止。--version 不写文件,使用 WORDCRAFT_NO_PREFS 运行(代理的测试运行)时只记录到标准错误。文档文本从不记录;panic 消息会省略它所引用的文本。
默认情况下,WordCraft 自己的 crate 以 info 记录日志,其他所有内容以 warn 记录。RUST_LOG 会用 env_logger 风格的指令替换该设置,例如 RUST_LOG=debug、RUST_LOG=warn,wordcraft_docx=trace 或 RUST_LOG=info,wgpu_core=warn;以 * 结尾的指令覆盖所有以它开头的目标(wordcraft*=debug)。日志记录器为 apps/wordcraft/src/logging.rs。
架构
| 层级 | Crate | 职责 |
|---|---|---|
| L0 | wordcraft-geom |
单位和度量 |
| L1 | wordcraft-doc、wordcraft-fonts、wordcraft-proof |
文档模型与编辑;字体与排版;拼写、语法、断字 |
| L2 | wordcraft-layout、wordcraft-docx、wordcraft-formats |
换行、分页、表格、注释、命中测试;OOXML;ODT/RTF/HTML/Markdown/TXT |
| L3 | wordcraft-render、wordcraft-pdf |
光栅化器(vello_cpu);PDF(krilla) |
| L4 | wordcraft-engine |
会话、撤销、422 条命令、Word 功能目录 |
| L5 | wordcraft-mcp |
MCP 服务器 |
| L6 | wordcraft-ui-egui |
Word 风格的前端(可替换) |
| apps | wordcraft、wordcraft-cli、wordcraft-web |
桌面、命令行、浏览器 |
cargo xtask ci 运行格式化、clippy、约 800 个测试、资源归属检查、分层检查和 wasm 构建。贡献者和代理说明:AGENTS.md。
路线图
WordCraft 处于 alpha 阶段。目前它以命令形式覆盖了 Word 功能区 88% 的功能;计入深度、文件保真度、稳定性及其他方面,我们估计它距离真正替代 Word 的全部工作大约完成了 60%,对于典型专业人士的每周工作约为 55%,对于日常基本需求约为 63%。Beta 阶段需要针对真实世界的 .docx 文件进行测试,在往返过程中保留图表和 SmartArt,使分页更接近 Word,进行稳定性排查以及原生打印。详情和估计:ROADMAP.md 和 我们的不足之处。
下载
从 GitHub 下载 WordCraft:最新版本 包含下面列出的所有构建,所有版本 包含更早的版本及其说明。文件名中的 <ver> 是版本号,SHA256SUMS.txt 列出了每个文件的校验和。
Windows
| 构建 | 安装程序 | 便携版 |
|---|---|---|
| x64(64 位 Intel/AMD) | wordcraft-<ver>-windows-x64.msi |
wordcraft-<ver>-windows-x64-portable.zip |
| arm64(Snapdragon 及其他 ARM PC) | wordcraft-<ver>-windows-arm64.msi |
wordcraft-<ver>-windows-arm64-portable.zip |
| x86(32 位) | wordcraft-<ver>-windows-x86.msi |
wordcraft-<ver>-windows-x86-portable.zip |
安装程序和可执行文件均已代码签名。
如果应用在 Windows 上无法打开:桌面应用默认只初始化 DirectX 12。让 wgpu 同时创建 OpenGL 实例可能会在窗口出现前使某些显卡驱动崩溃(AMD 的 atio6axx.dll),因此应用会在任务管理器中一闪而过然后退出。WGPU_BACKEND 可覆盖默认设置以进行故障排查(例如 dx12 或 vulkan)。在 PowerShell 中,从包含可执行文件的文件夹运行:
$env:WGPU_BACKEND = "vulkan" & .\wordcraft.exe Remove-Item Env:WGPU_BACKEND # restore the default for later launches
显式覆盖 gl 可能会在受影响的系统上重新引发驱动崩溃。macOS、Linux 和 Web 后端的默认值保持不变。
如果应用在窗口出现后立即退出,日志中显示“Parent device is lost”:
WordCraft 使用 FXC(Windows 内置的编译器)编译 DirectX 12 着色器,因此不需要
dxcompiler.dll/dxil.dll,并忽略其他程序放在 PATH 上的任何副本(#603)。
WGPU_DX12_COMPILER(fxc、dxc、auto)会覆盖此设置;使用 dxc 时,匹配的
dxcompiler.dll 和 dxil.dll 必须与 wordcraft.exe 放在一起。WGPU_BACKEND = "vulkan"
也完全避开 DirectX 12。
如果应用在较旧的 Windows PC 上运行缓慢:当 DirectX 12 找不到带有
对应驱动程序的显卡时(例如 Windows 11 上的 Intel 第四代显卡),它只提供 Microsoft 的
软件渲染器,在处理器上绘制每一帧。在这种情况下,WordCraft 会改用 OpenGL,
无需设置任何内容。日志文件会记录这一选择(以
graphics: 开头的行)。WGPU_BACKEND 仍会覆盖它,例如 $env:WGPU_BACKEND = "gl" 或 "dx12"。
macOS
| 构建 | 文件 | 说明 |
|---|---|---|
| 应用,通用(Apple 芯片 + Intel) | wordcraft-<ver>-macos-universal.dmg |
已签名并公证 |
| 命令行工具,通用 | wordcraft-cli-<ver>-macos-universal.zip |
已签名并公证 |
Linux
| 格式 | x86_64 | aarch64(ARM64) | 说明 |
|---|---|---|---|
| AppImage | wordcraft-<ver>-linux-x86_64.AppImage |
wordcraft-<ver>-linux-aarch64.AppImage |
可在任何地方运行;通过 AppImageUpdate 自行更新(.zsync 文件) |
| Flatpak | wordcraft-<ver>-linux-x86_64.flatpak |
wordcraft-<ver>-linux-aarch64.flatpak |
沙盒化;flatpak install --user <file> |
| Debian/Ubuntu | wordcraft-<ver>-linux-x86_64.deb |
wordcraft-<ver>-linux-aarch64.deb |
|
| Fedora/RHEL/openSUSE | wordcraft-<ver>-linux-x86_64.rpm |
wordcraft-<ver>-linux-aarch64.rpm |
|
| Tarball | wordcraft-<ver>-linux-x86_64.tar.gz |
wordcraft-<ver>-linux-aarch64.tar.gz |
解压到任意位置 |
RISC-V(riscv64):wordcraft-<ver>-linux-riscv64.tar.gz,一个为 glibc 2.39+ 交叉编译的 tarball
(Ubuntu 24.04、Debian 13 及更新版本)。
Arch Linux(AUR)。社区成员维护三个 AUR 包;本项目本身不发布 到 AUR。安装其中一个:
| 包 | 安装内容 | 选择时机 |
|---|---|---|
wordcraft-bin |
上面的发布 tarball,预构建(x86_64、aarch64) | 你想要最新版本而无需编译(最快) |
wordcraft |
最新版本,使用 cargo 从源码构建 |
你更愿意自己构建发布版本 |
wordcraft-git |
当前的 main 分支,从源码构建 |
你想要未发布的更改,并接受偶尔构建失败 |
例如 yay -S wordcraft-bin 或 paru -S wordcraft-bin。
FreeBSD
| 构建 | 文件 |
|---|---|
| x86_64 | wordcraft-<ver>-freebsd-x86_64.tar.gz |
Web(WebAssembly)
| 构建 | 文件 | 说明 |
|---|---|---|
| 静态站点 | wordcraft-web-<ver>.zip |
在现代浏览器中运行;将其托管在任何静态服务器上 |
Crafting 应用
WordCraft 是 Crafting 应用之一:来自 ArtCraft 团队的免费开源创意工具,每个都用 Rust 从零编写,且每个都能 独立运行。
| 应用 | 用途 | 代码 | 了解更多 | |
|---|---|---|---|---|
| PhotoCraft | 图像编辑:图层、蒙版、文字和真正的 PSD 文件 | GitHub | 网站 | |
| VectorCraft | 矢量插画 | GitHub | 网站 | |
| FilmCraft | 视频编辑、色彩和声音 | GitHub | 网站 | |
| LightCraft | 照片库和 raw 显影 | GitHub | 网站 | |
| PdfCraft | 阅读、整理和保护 PDF | GitHub | 网站 | |
| EffectCraft | 动态图形和视觉效果 | GitHub | 网站 | |
| DesignCraft | 页面布局和出版 | GitHub | 网站 | |
| WordCraft | 写作和文档设计 · 你在这里 | GitHub | 网站 |
以及 ArtCraft 本身,我们为想要真正掌控的艺术家打造的 AI 图像和视频工作室。
来和我们一起创作吧
我们的 Discord 是各类创作者聚集的地方:绘画的、摄影的、画画的、剪片的、排字的,还有仍在摸索自己想做什么的人。分享你正在做的作品,寻求帮助,告诉我们哪里出了问题,或者告诉我们你希望这些工具能做什么。无论你用什么媒介、做了多久,这里都欢迎你。
discord.gg/artcraft · getartcraft.com · The Crafting Apps · WordCraft
许可与致谢
WordCraft 采用双许可,你可选择 MIT 或 Apache-2.0。 Copyright (c) 2026 ArtCraft Team 及 WordCraft 贡献者。必需的声明见 NOTICE。
捆绑的字体、图标、图像及其他资源保留各自的开放许可;每一项的作者、来源和许可均列于 ATTRIBUTION.md。
拼写词典和断字来自 Grady Ward 的公有领域 Moby Hyphenator II 词表。示例文档和模板是为 WordCraft 撰写的原创文本。
docs/brand/ 中的 ArtCraft 名称、字标和徽标是 ArtCraft Team 的商标,不在本许可范围内。它们只能以未修改的形式使用,且只能作为本仓库和 WordCraft 的一部分,依据 docs/brand/LICENSE-brand.txt 使用。
分支和修改版本必须移除它们。
Microsoft 和 Microsoft Word 是 Microsoft 集团公司的商标。Adobe、Photoshop、Illustrator、Premiere Pro、Lightroom、Acrobat、After Effects 和 InDesign 是 Adobe Inc. 在美国和/或其他国家的商标或注册商标。WordCraft 是一个独立的开源项目,与 Microsoft Corporation 或 Adobe Inc. 无关联,未受其赞助或认可;这些名称仅用于描述其兼容的工作流程。
由 ArtCraft 团队和社区制作。
来源:Hacker News · github.com





