DesignCraft 是一个用 Rust 从零实现的开源页面排版与出版工具,目标是提供类似 Adobe InDesign 的工作流。它支持桌面端 macOS、Windows、Linux,也支持通过 WebAssembly 在浏览器运行。项目强调排版引擎优先、无订阅、无遥测、开放文档格式,并支持通过 JSON 控制通道和 MCP Server 让 AI Agent 自动化操作排版任务。
适用领域
桌面出版 DTP / 页面排版 / 数字出版 / Rust GUI 应用 / WebAssembly 应用 / 设计工具 / 文本排版引擎 / AI Agent 自动化 / 创意软件
配置难度
中高。作为普通用户运行示例较简单,只需 Rust 和 cargo;但若要进行 Web 构建、Agent 控制、字体配置或二次开发,需要熟悉 Rust workspace、egui、WASM、文本排版和渲染管线。对于希望深度定制排版引擎或集成自动化工作流的开发者,学习成本较高。
商业价值
该项目的商业价值主要体现在开源 DTP 替代方案、自动化排版和 AI Agent 驱动设计工具三个方向。对于出版、内容营销、电商物料、教育资料、报告生成等场景,它有潜力降低对 Adobe InDesign 订阅和闭源工作流的依赖。其 JSON 控制通道和 MCP Server 使其适合构建自动生成杂志、海报、产品目录、品牌模板和批量出版物的系统。不过,在投入生产前,需要重点验证中文排版质量、PDF 输出能力、IDML 兼容性、稳定性和团队维护活跃度。
01
技术亮点
- 使用纯 Rust 实现,跨 macOS、Windows、Linux 和 Web。
- 目标工作流接近 Adobe InDesign,包括跨页、父版页、文本框、串接文本、样式、色板、文本环绕等概念。
- 内置 Knuth-Plass 段落排版算法,支持单行排版、断字、字距和字形缩放调整、基线网格、制表符、段落规则和底纹等。
- 屏幕显示和导出结果的换行保持一致,适合严肃排版场景。
- 使用 vello_cpu 进行多线程 SIMD 渲染,强调性能。
- 文档使用 copy-on-write 和 O(1) undo snapshots,适合复杂编辑历史。
- 提供 CLI,可进行无头渲染和自动化处理。
- 支持 JSON 控制通道和 MCP Server,适合与 Claude 等 AI Agent 集成。
- 架构分层清晰,engine、render、compose、doc、ui-egui 等模块职责明确,便于二次开发。
- 开源协议友好,仓库标注 Apache-2.0,README 徽章显示 MIT / Apache-2.0。
- 无订阅、无许可证服务器、无遥测。
- 提供 IDML 导入导出能力,PNG 导出已支持,PDF 在路线图中。
02
目标用户
- 平面设计师
- 杂志和书籍排版人员
- 出版行业开发者
- Rust 桌面应用开发者
- 希望替代 Adobe InDesign 的个人或团队
- 需要自动化生成版式文档的开发者
- 研究文本排版、分页、字体渲染的工程师
- AI Agent 工具链开发者
03
配置要求
- 需要 Rust/Cargo 开发环境。
- Web 构建需要安装 trunk:cargo install trunk。
- Web 构建需要添加 wasm32-unknown-unknown 目标:rustup target add wasm32-unknown-unknown。
- 日文字体支持可选依赖 storytold/craft-fonts,需要单独克隆到相邻目录并设置 CRAFT_FONTS_DIR。
- 示例字体配置:git clone https://github.com/storytold/craft-fonts ../craft-fonts,然后 CRAFT_FONTS_DIR="$PWD/../craft-fonts" cargo run --release -p designcraft。
- 没有 craft-fonts 时,桌面端日文会回退到系统字体,Web 端可能没有可用日文字体。
- 控制通道默认示例使用 127.0.0.1:7979,通过 JSON lines 与运行中的应用交互。
- Web 版本不支持控制通道。
- 如果需要 Agent 集成,应阅读 docs/control-protocol.md 和 docs/mcp.md。
- 项目使用 Cargo workspace,并通过 cargo xtask layers 强制分层架构。
04
适用场景
- 制作杂志、画册、宣传册、海报等多页排版文档
- 创建带有父版页、跨页、文本框、图文混排和样式系统的出版物
- 通过 CLI 无头渲染页面并导出 PNG
- 在 Web 端运行轻量级排版应用
- 研究和复用 Rust 实现的文本排版、字体 shaping、渲染和文档模型
- 通过 JSON 控制通道或 MCP Server 让 AI 自动创建、修改、导出排版文档
- 作为 Adobe InDesign 工作流的开源替代方案进行实验或二次开发
- 测试 IDML 导入导出、文档格式转换和排版自动化流程
05
部署与配置
- 安装 Rust 工具链,建议使用 rustup 安装稳定版 Rust。
- 克隆仓库:git clone https://github.com/storytold/designcraft.git
- 进入项目目录:cd designcraft
- 运行桌面应用:cargo run --release -p designcraft
- 打开示例杂志:cargo run --release -p designcraft -- --sample
- 启用 JSON 控制通道运行:cargo run --release -p designcraft -- --sample --control 7979
- 使用 CLI 无头渲染所有页面到 PNG:cargo run --release -p designcraft-cli -- run --sample --all-pages out/
- 查看可用命令:cargo run --release -p designcraft-cli -- commands
- 运行项目质量检查:cargo xtask ci
- 如需构建 Web 版本,先安装 trunk 并添加 wasm32-unknown-unknown target,然后执行:cd apps/designcraft-web && trunk build --release
- 本地启动 Web 版本:cd apps/designcraft-web && trunk serve --release,访问 http://127.0.0.1:8767
06
风险与注意事项
- 项目虽然 Star 数较高,但 README 表述显示仍在快速发展阶段,关键功能如 PDF 导出仍在 roadmap 中,生产可用性需要实测。
- Adobe InDesign 是非常复杂的专业软件,开源重实现可能在兼容性、稳定性、复杂文档处理能力上存在差距。
- IDML 导入导出的完整性和复杂文件兼容性需要针对真实业务文档验证。
- 中文排版能力在 README 中没有明确强调,例如 CJK 断行、标点挤压、竖排、避头尾、中文字体回退等,需要进一步测试。
- Web 版本没有控制通道,自动化能力弱于桌面版本。
- 依赖 Rust、WASM、trunk、WebGPU/WebGL2 等技术栈,对普通设计师直接使用仍有门槛。
- AI Agent 可控能力强,但如果接入外部自动化流程,需要注意权限、文件操作和控制端口安全。
- 仓库 description 为空、topics 为空,项目信息整理程度一般。
- fork 数较高但需要检查真实社区活跃度、issue 响应和 release 节奏。
- 可选字体资源不在主仓库内,构建和发行时需要额外处理字体授权与路径配置。
2026-10-08
第12名
新收录 · github_search