SolidCraft 源码构建完整指南:桌面端、浏览器 WASM 与 CLI 三条路线
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
SolidCraft 是一个纯 Rust 编写的开源参数化 3D CAD 应用,支持草图约束、特征时间线与参数化重建。本文覆盖它的三条源码构建路线:桌面端、浏览器 WASM 版与无界面 CLI,外加交叉编译、Nix 构建与 CI 自检。按主路径走一遍,10 分钟内可以拿到一个能跑的桌面程序。
🧰 环境要求与一键自检:Rust 版本、WASM 目标与前端工具
SolidCraft 要求stable Rust 1.95+(由 egui/eframe 0.36 决定)。先把工具链升到最新:
rustup update stable下面三项中,WASM 目标与 trunk 只在你要编译浏览器版时需要:
| 依赖 | 用途 | 安装命令 |
|---|---|---|
| Rust 1.95+(stable) | 全部构建形态 | rustup update stable |
| wasm32-unknown-unknown 目标 | 浏览器 WASM 版 | rustup target add wasm32-unknown-unknown |
| trunk | 前端构建工具 | cargo install trunk |
更完整的环境说明见 CONTRIBUTING.md 与快速上手文档 docs/book/src/guide/getting-started.md。
🖥️ 主路径:从克隆仓库到首次运行桌面端
- 克隆源码并进入仓库根目录,得到整个 Cargo workspace(几何内核 crates/kernel、约束求解器 crates/sketch、文档模型 crates/doc 等,布局见 Cargo.toml):
git clone https://gitcode.com/gh_mirrors/so/solidcraft cd solidcraftcargo build --release -p solidcraft编译桌面端可执行文件,产物落在target/release/solidcraft:
cargo build --release -p solidcraftcargo run --release -p solidcraft -- --sample直接以示例零件启动应用;编译成功后会打开窗口并加载 Sample Plate 零件:
cargo run --release -p solidcraft -- --sample首次编译约需几分钟(Rust release 构建的常规耗时),之后增量编译很快。
拿到target/release/solidcraft之后,它也可以把 CAD 文件直接作为设计打开:
solidcraft part.step solidcraft design.solidcraft💡 Linux 桌面端依赖 Vulkan 显卡驱动。如果系统缺少图形库(NixOS 上常见),可以用仓库自带的 Nix flake 进入封装好的 Wayland/EGL/Vulkan 环境:
nix develop。详见 docs/nix.md。
🧩 一套内核,两副壳:浏览器 WASM 版与无界面 CLI
桌面、Web、CLI 三个应用目标共用同一套内核(workspace 里是 apps/solidcraft、apps/solidcraft-web、apps/solidcraft-cli),只是外壳不同。
浏览器 WASM 版的本地开发与生产构建
Web 版前端在 apps/solidcraft-web/,用trunk构建(配置见 apps/solidcraft-web/Trunk.toml)。
本地开发模式带热更新,监听 127.0.0.1:8781,浏览器访问打印出的地址即可;附加参数?sample打开示例零件,?webgl在无 WebGPU 的环境强制使用 WebGL2:
cd apps/solidcraft-web trunk serve --release生产构建把产物输出到dist/web,可部署到任意静态服务器:
cd apps/solidcraft-web trunk build --release --public-url ./⚠️ 浏览器端保存/打开文件基于 Origin Private File System,必须在HTTPS 或 localhost环境下才能正常工作。
无界面命令行的编译与自动化用法
solidcraft-cli执行与图形界面完全相同的命令(源码在 apps/solidcraft-cli/src/),面向自动化、批量导出和 AI 代理(MCP)场景:
cargo build --release -p solidcraft-cli常用子命令以仓库自带示例 examples/bracket.json 为基准——一条脚本就是一组 JSON 命令,与界面里的操作一一对应:
solidcraft-cli commands # 输出完整命令注册表 solidcraft-cli run examples/bracket.json --out bracket.step solidcraft-cli eval examples/bracket.json # 测量体积、面积、面数 solidcraft-cli snapshot examples/bracket.json --out bracket.png solidcraft-cli mcp # 启动 MCP 服务器🧪 给构建做体检:xtask 测试与 CI 检查
仓库自带xtask工具链(实现在 xtask/src/main.rs),两条命令分工不同:
cargo xtask test— 单元、引擎与 UI 场景测试cargo xtask ci— fmt + clippy + 测试 + WASM 检查,即 PR 必须通过的完整流水线
cargo xtask testcargo xtask ci测试语料可以直接翻:tests/oracle/下有 92 个参考零件,UI 场景脚本在crates/ui-egui/tests/scenarios/。
🗂️ 翻车现场速查:SolidCraft 编译故障排查
| 现象 | 处置 |
|---|---|
| 编译报错说 Rust 版本过旧 | rustup update stable,要求 1.95+ |
| Linux 下启动时提示缺少 Wayland/Vulkan 相关库 | nix develop进入封装环境,或自行补装系统图形库 |
敲trunk提示找不到命令 | cargo install trunk,装完重开终端 |
| 浏览器版里保存文件失败 | 确认页面跑在 localhost 或 HTTPS 下 |
| 第一次编译等了很久 | release 构建本来就慢,属正常现象;后续增量编译会快很多 |
选读:交叉编译 Windows 与 Nix 构建
按需选读,两条路线都只在你需要对应产物时才执行。
在 Linux 上交叉编译 Windows 版(前置:安装cargo-xwin):
cargo xwin build --release --target x86_64-pc-windows-msvc -p solidcraft用 Nix flake 构建,环境完全可复现;第一条免安装直接运行,第二条把应用安装为系统命令:
nix run .#solidcraft -- --sample nix profile install .#solidcraft三条路线收在这里:桌面端一条cargo build出可执行文件,浏览器版由 trunk 产出静态站点,CLI 把同样的命令搬进脚本和 MCP 服务。更多细节看官方文档 docs/book/ 与功能清单 docs/features.md。
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考