ArtCraft团队现在已经开发出开源的Figma。它包含了Figma、FigJam和一个协作服务器。产品中包含了所有功能。
FigCraft 是一个用纯 Rust 从零实现的开源界面设计与原型工具,可以理解为 Figma 的"洁净室重写版"------只参考公开文档和可观察行为,不涉及任何专有代码、文件格式或素材。它目前处于 alpha 阶段,作者自评大约完成了替代 Figma 进行实际工作的 49%。
FigCraft是一款纯Rust编写的开源界面设计工具,覆盖Figma核心工作流,文件存本地磁盘,无需账号,没有网络请求,目前处于alpha阶段,作者自称完成替代Figma所需工作的百分之四十九。
打开一个设计文件,先等网页加载,再等字体渲染,然后每次拖动图层都有一丝微妙的延迟。
这不是你的错觉,Figma把整个编辑器塞进浏览器里,本质上是一个运行在WebView中的复杂JavaScript应用,它的协作能力无人能敌,但代价是你的设计文件从来不在你的电脑上,它躺在Figma的服务器里,你只是租了一个随时可以访问的入口。
FigCraft的选择截然相反,它是一个原生桌面应用,用Rust编写,没有Electron,没有WebView,没有JavaScript运行时,打开一个两万节点的文件,创建一个新节点,耗时不到一毫秒。
你可能会说快有什么用,Figma的快已经够用了,但问题不在快慢,在归属,FigCraft的文件是磁盘上后缀为.figcraft的归档文件,你复制它,备份它,用U盘拷走它,都不需要经过任何服务器。
Figma的免费版有草稿数量限制,付费版最便宜的Professional档每人每月十六美元,FigCraft没有账号系统,没有订阅,没有AI积分,它就是一堆Rust代码,编译出来一个可执行文件。
设计工具必须联网这件事本身就很怪
用Rust做界面,尤其是做设计工具,在过去几乎等于自虐,设计工具需要画布渲染流畅;文字排版精确;矢量运算实时;撤销重做瞬间完成,这些需求放在C++或JavaScript生态里,都有成熟的库可以用。
Rust生态在2020年之前,连一个能用的UI框架都找不到,FigCraft的做法是把每个环节都自己写,渲染用tiny-skia跑满所有CPU核心,矢量布尔运算用linesweeper,几何计算用kurbo,文字塑形用skrifa和HarfRust,这套技术栈里没有一个组件是拿来就用的。
换句话说实现一个Figma的替代品不是调几个API的事,而是把图形学的教科书从头翻到尾,这也是为什么FigCraft的作者把项目进度标为百分之四十九,菜单项几乎都接通了,核心编辑器能跑通端到端流程了,但打开真实的.fig文件只能尽力而为,多人协作只是首个预览版。
一个用Rust重写的设计工具,最难的部分不是画一个矩形,是让矩形在拖动的时候旁边的文字不会突然跳一下,是让组件变体的属性面板在你切换时不会闪烁,是让撤销栈在两百步操作后依然在十六毫秒内响应,这些事Figma花了十年才打磨出来。
每条命令都被记录在案才是真正的差异
Figma有一个东西你平时不会注意到,但它决定了整个工具的扩展性上限,它不是插件API,不是REST接口,是命令注册表。
FigCraft把每一个菜单项,每一个工具,每一次拖拽,都注册为一条命令,总共有四百多条,这意味着你在界面上点创建矩形,和你在命令行里运行一个脚本创建矩形,调用的是同一个函数。
bash
figcraft-cli render landing.figcraft -o landing.png --scale 2
figcraft-cli export landing.figcraft -o out/ --format svg
figcraft-cli run build-card.json --out card.figcraft
figcraft-cli mcp
这是FigCraft的CLI工具,你可以不开图形界面,直接渲染一个设计文件导出成图片,或者跑一串JSON命令生成一个设计文件。
更关键的是最后一行figcraft-cli mcp,AI助手调用外部工具需要一套标准协议,这套协议叫Model Context Protocol,简称MCP,FigCraft把自己的命令注册表通过MCP暴露出去,一个AI助手可以像人类用户一样操作这个设计工具,它打开文件,创建画板,放置组件,设置自动布局,导出预览图,全部通过命令行完成,不需要模拟鼠标点击。
Figma也有MCP,但它的MCP是通过云端中转的,你在本地跑一个AI助手,它要操作Figma,请求得先发到Figma的服务器,再回到你的浏览器里执行的插件,再传回去,FigCraft的MCP是本地的,AI助手直接和你的设计文件对话,中间没有任何服务器。
这个差异看起来很小,但它改变了谁能用这个工具,如果你的公司不允许设计文件上传到外部服务器,Figma的AI功能你就用不了,FigCraft没有这个问题,因为它的AI驱动是走本地进程间通信的。
它不打算取代Figma,但Figma可能不希望它成功
FigCraft的README里有一段话写得很克制。
Figma is a trademark of Figma, Inc. FigCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Figma, Inc.
翻译过来就是我们跟Figma没关系,别搞错了,这种谨慎是有原因的,这几年清洁室重写(clean-room reimplementation)这个词在开源社区越来越敏感。
chardet的维护者用AI把LGPL协议下的库重写成了MIT协议,原作者出来抗议,说你们没有权利重新许可这个项目,因为维护者看过原始代码,这不是真正的清洁室。
FigCraft的处境不太一样,它不是重写一个已有的开源库,它是重写一个商业产品,Figma的源代码从来没有公开过,FigCraft的作者只能从公开文档和观察到的行为里推断怎么实现自动布局,怎么处理组件变体,怎么渲染文字。
清洁室重写的传统做法是一队人逆向工程出规格说明书,另一队人只看规格说明书写代码,两组人之间不能交流,这在过去要花几个月甚至几年。
AI把这件事压缩到了几个小时,有人在Hacker News上做了实验,让AI根据公开API文档重写一个Python库,生成的代码和原版的相似度不到百分之二,如果清洁室的标准变成代码相似度低于某个阈值,而不是有没有接触过原代码,那整个开源许可证体系的基础都在松动。
FigCraft选择在这个时候发布可能不是巧合,它用Rust重写不是为了性能,是为了证明一件事,当一个工具的所有行为都被记录为命令,它的实现就可以被重建,你看到的菜单,面板,快捷键,都是表象,真正的Figma是那套命令注册表背后的逻辑,FigCraft重建了这套逻辑,只是用了另一种语言。
一个四十九个百分点的工具值不值得试
FigCraft的alpha版本现在可以下载,它有桌面安装包,macOS,Windows,Linux,FreeBSD都有,也有网页版,通过WebAssembly在浏览器里跑。
它还不能打开你所有的Figma文件,简单的.fig文件可以试试,复杂的组件库大概率会出问题,它的多人协作只是首个预览版,两个人同时编辑一个文件,光标能看到,但冲突处理还很不成熟。
它的模板库里只有八个起始文件,都是作者用代码生成的合成内容,没有真实的商业设计案例,但它的核心编辑器是完整的。
自动布局能做双向,网格能做跨格,组件能做变体,矢量能做布尔运算,原型能做条件逻辑,你画一个登录页,放几个输入框和按钮,设置点击跳转,导出一张PNG,这条路径是通的。
一个人用Rust重写Figma,听起来像堂吉诃德冲向风车,但当你发现那个风车是一台服务器集群,而你手里是一把不需要联网的瑞士军刀,事情就变得有意思了。
FigCraft的文档里有一份目标应用对等清单,逐项标记了Figma的每个功能实现了没有,清单很长,红色的未实现还很多,但有一项是绿色的,打开文件不需要网络请求。
Github网址点击原文标题:https://www.jdon.com/95247-artcraft-figcraft-figma.html