StarSector / NanoForge 专用启动器——Tauri(Rust + React)桌面前端 + Kotlin 启动核心。
- 实例管理、启动前置检查与一键修复、实时日志视图、coremod 管理、首次运行向导 (六页:启动 / 日志 / 实例 / coremod / 设置 / 向导)。
- Kotlin 启动核心消费 NanoForge 的
launch-spec库(安装探测 / classpath 组装 / JVM 参数模板 / 前置检查),CLI 无头模式与 UI 共用同一启动链路。 - UI 与核心经 stdio 帧协议解耦:Rust 桥(
src-tauri)拉起 Kotlin serve 进程并管理其 生命周期(崩溃自动重建、退出收割),前端(ui-tauri)只经桥收发命令与事件。
src/main/kotlin— 启动核心:实例 / 前置检查 / 一键修复 / serve 无头模式。src-tauri— Tauri Rust 侧:桥生命周期(BridgeManager)、Tauri 命令与事件转发。ui-tauri— 前端(React + TypeScript + Vite,设计系统见docs/design/frontend-spec.md)。docs/design— 设计文档(迁移设计、实现计划、前端规范、验收记录)。
Compose Desktop 旧 UI 仍在仓库中,将在迁移阶段 4 移除(见
docs/design/tauri-migration-design.md)。
前置:JDK 25、Node.js、Rust 工具链;并先在 NanoForge 仓库执行
./gradlew :launch-spec:publishToMavenLocal(launch-spec 当前经 mavenLocal 消费)。
./gradlew build # Kotlin 编译 + 单测(含 serve 进程级集成测试)
cd ui-tauri && npm install && npm run dev # 前端 dev 服务(:1420)
./gradlew coreJar && cd src-tauri && cargo run # 构建核心 jar 并启动 Tauri 应用测试三链:./gradlew test(Kotlin)、cd src-tauri && cargo test(Rust 桥)、
cd ui-tauri && npm run test(vitest)。
| 格式 | 平台 | 说明 |
|---|---|---|
| deb | Debian / Ubuntu | npx tauri build --bundles deb,产物 src-tauri/target/release/bundle/deb/ |
| AppImage | 任意 Linux | npx tauri build --bundles appimage(免安装,需 FUSE2) |
| PKGBUILD | Arch Linux | packaging/PKGBUILD(重打包 GitHub Release 的 deb,makepkg 构建) |
| nsis 安装器 | Windows | GitHub Actions release.yml(npx tauri build,windows-latest) |
运行依赖:WebKitGTK 4.1(Linux WebView 运行时)、Java 21+(启动核心经
java -jar 拉起;设置页含 Java 探测)。Linux 的 deb/AppImage 内嵌
launcher-core.jar(resource 根,/usr/lib/NanoLauncher/)。
资源接线:tauri.conf.json 的 bundle.resources 将 launcher-core.jar
(./gradlew coreJar 产物)打进 resource 根——构建前经 beforeBuildCommand
(node,cwd 为仓库根)拷贝到 src-tauri/launcher-core.jar;运行时 core_command
优先取 resource 目录,开发环境回退 Gradle 相对路径。
./gradlew run --args="--headless --instance=/path/to/game launch"
./gradlew run --args="--headless serve" # stdio 帧协议常驻模式(Rust 桥同款入口)供冒烟脚本与 CI 复用同一启动链路;前置检查失败打印结构化报告并以非零退出。