RustDroid — 3MB 安装包的轻量级 Android 代码编辑器(Rust + Tauri 实现)

1. Demo 简介

是什么

RustDroid 是一款用 Rust + Tauri 2.x 实现的轻量级 Android 代码编辑器(桌面应用,Windows 平台)。相比 Android Studio 1.2GB 量级的安装包,本 Demo 安装包仅 3.14 MB,目标是为低配设备用户提供一个"快速打开、快速浏览、快速小改"Android 项目代码的轻量入口。

说明:本 Demo 是一个基础版代码编辑器底座,定位为"快速浏览和编辑 Android 项目代码"的轻量工具,不是完整的 Android 开发环境。当前版本聚焦验证"Rust + Tauri 2.x 构建 IDE 形态应用"的技术可行性与 TRAE 全流程驱动开发,未实现 Java LSP 智能补全,也未在 Demo 中演示 APK 构建(详见第 2 节取舍说明)。

面向谁

  • Android 初学者:被 Android Studio 启动慢、配置复杂、内存吃满劝退的新手,需要一个轻量工具快速查看 / 小改 Android 项目代码
  • 低配电脑学生:4-8GB RAM 的笔记本跑不动 Android Studio,但又需要阅读 / 编辑 Android 代码
  • 轻量场景用户:只想快速查看或小改某个 Android 项目,不想为 30 秒的启动等待买单

主要功能

当前 Demo 已实现的可演示功能(均经过代码核查):

# 功能 演示状态 实际能力边界
1 新建 Android 项目 :white_check_mark: 可演示 一键生成 AGP 8.1.0 + compileSdk 34 + minSdk 21 的项目骨架,预填 appcompat 1.6.1 / material 1.9.0 / constraintlayout 2.1.4 三个核心依赖,含 MainActivity.java + AndroidManifest + 布局资源
2 Monaco 代码编辑器 :white_check_mark: 可演示 与 VS Code 同款编辑器内核,Tokyo Night 暗色主题,Java/Rust/Gradle/XML 等多语言语法高亮,多 Tab 编辑,自动保存(固定 800ms 延迟,设置页开关暂未生效)。Java 仅有语法高亮,无 LSP 补全 / 诊断 / 跳转
3 文件树浏览 :white_check_mark: 可演示 递归渲染 + 惰性加载 + 右键菜单(新建 / 重命名 / 删除)+ 外部变更自动刷新
4 ConPTY 真终端 :white_check_mark: 可演示 portable-pty 0.8 集成,Windows 下走 ConPTY,shell 为 cmd.exe,支持 vim 等交互式程序(需本机安装),无黑窗弹出
5 Git 面板(只读) :warning: 有条件 变更列表(已暂存 / 已修改 / 未跟踪三组)+ 单文件 diff 查看 + 提交历史(git log 默认 50 条)。仅在 Git 仓库下可用;新建的项目默认不是 Git 仓库,需先 git init 才能使用,否则报错"not a git repository"。只读,不能 commit
6 全局搜索 :white_check_mark: 可演示 walkdir 递归 + 正则 / 大小写切换,自动跳过 .git / build / target / node_modules / .gradle / .idea
7 命令面板 :white_check_mark: 可演示 Ctrl+Shift+P 模糊搜索,所有菜单命令统一入口,↑↓ / Enter / Esc 键盘导航
8 设置系统 :white_check_mark: 可演示 4 个 tab(编辑器 / 外观 / 语言服务器 / 快捷键)。快捷键 tab 仅展示默认值,不可自定义。LSP 路径配置仅对 Rust 项目生效(rust-analyzer),Android 项目无 LSP
9 构建环境检测 :white_check_mark: 可演示 检测 JAVA_HOME / java -version、ANDROID_SDK_ROOT / ANDROID_HOME、gradlew 或 PATH 中的 gradle;缺失时弹出配置指引对话框(含官方下载外链,但不在应用内下载)
10 克隆 Git 仓库 :warning: 未验证 可打开克隆对话框输入仓库地址,未实际验证克隆功能是否正常工作(需联网 + 本机 Git 可用)

已实现但未在 Demo 中演示的技术能力

技术能力 代码状态 未演示原因
构建日志智能分析 :white_check_mark: 代码完整(build_analyzer.rs 20 条规则 + 17 单测) 实际 gradle build 受限于评委机器环境(JDK / SDK / 网络),Demo 中不保证可靠产出 APK,故不现场演示
rust-analyzer LSP 集成 :white_check_mark: 代码完整(initialize / didOpen / didChange / completion / hover / gotoDefinition 全链路) 仅对 Rust 项目可用;Android 项目是 Java,jdtls 未实现,故 Demo 中不展示 LSP
cargo / gradle 构建调用 :white_check_mark: 代码完整(build_run 命令 + 流式 stdout/stderr + APK 路径扫描) 实际构建受限于本机环境,Demo 中不演示

界面预览(运行时真实截图)

启动进入欢迎页,三入口(打开 / 新建 / 克隆)+ 最近项目列表

Monaco 编辑器 + 文件树 + 状态栏(Java 语法高亮,无 LSP 补全)

文件树右键菜单(新建 / 重命名 / 删除)

全局搜索面板(正则 / 大小写切换,自动跳过 .git / build / target)

关于页面(版本信息 + 技术栈)


2. Demo 创作思路

灵感来源

我是刚毕业的计算机专业学生,在校期间用 AI 辅助工具写过一些 Android 小应用,亲身经历过 Android Studio 的"重"——安装包 1GB+、启动几十秒、8GB 内存笔记本开着 Android Studio 就卡到难以同时开浏览器查文档。

毕业后想做一个个人项目练手,正好看到 TRAE AI 创造力大赛。一个直接的想法是:既然 AI 辅助工具能帮我写 Android 应用,能不能也用它来做一个轻量级的 Android 代码编辑器?让和我一样用低配设备的用户有一个"快速打开、快速浏览、快速小改"Android 代码的轻量入口。

选择 Rust + Tauri 2.x 作为技术栈,是因为我想借这个项目用 AI 探索 Rust 这门语言(开发本项目前没有 Rust 经验),同时验证 Tauri 2.x 在桌面应用上的体积优势。整个开发过程重度依赖 TRAE 辅助,从架构设计到代码生成到 Bug 定位贯穿全程。

想解决的问题

主流 Android IDE(Android Studio / IntelliJ)存在三个长期未被有效解决的痛点:

痛点 Android Studio 现状 用户真实损失
体积过大 1.2GB+ 安装包(IDE 本体,不含 SDK) 下载慢、占磁盘、低配机硬盘吃紧
启动过慢 30-60 秒冷启动 等待成本高,"打开看一眼就关"的场景无法承受
内存吃满 4-8GB RAM 占用 4-8GB 内存机器同时开浏览器 / 模拟器直接卡死

而 VS Code + Android 插件的方案虽然轻一些,但配置繁琐,且缺乏针对 Android 项目的开箱即用模板

为什么做这个方向

三个判断支撑我做这个方向:

  1. 技术窗口期已到:Tauri 2.x 在 2024 年正式发布,Rust + WebView 的方案终于成熟到可以承载桌面应用,体积比 Electron 小一个数量级。
  2. 细分需求存在:主流 IDE 追求"功能全",低配设备用户被长期忽视——我自己就是被 Android Studio 卡过的用户,这个需求是真实的。
  3. AI 辅助让跨界可行:作为没有 Rust 经验的应届毕业生,TRAE 让我能用 Rust + Tauri 完成一个原本超出能力范围的项目,这本身就是 AI 辅助开发的价值验证。

取舍说明

本 Demo 是分阶段实现的第一阶段,聚焦验证技术可行性与 TRAE 全流程驱动开发。以下是明确的范围控制决策:

功能 状态 取舍原因
Java / Kotlin LSP(jdtls) :cross_mark: 未实现 jdtls 启动复杂(需 JDK + 工作区初始化),优先保证 rust-analyzer 链路跑通验证 LSP 架构正确性。Java 文件编辑仅有 Monaco 语法高亮
APK 构建现场演示 :warning: 代码完整但不演示 build_run 命令已实现 gradle 调用 + 流式日志 + APK 路径扫描,但 gradle build 受限于评委机器环境(JDK / SDK / 网络依赖下载),Demo 中不保证可靠产出 APK,故不现场演示
Git commit :cross_mark: 未实现 优先实现只读的 status / diff / log 查看链路,commit 交互留待后续版本
MSI 安装包 :cross_mark: 未生成 tauri.conf.json 声明了 msi + nsis 两个 target,但实际构建仅产出 NSIS,未排查 MSI 缺失原因
设备调试 / APK 预览 / 断点调试 :cross_mark: 未实现 范围超出初赛 Demo 阶段,留待后续版本
自定义快捷键 :cross_mark: 未实现 优先级低于核心编辑功能
主题切换 :cross_mark: 未生效 视图菜单的"切换主题"项点击后无效果,主题切换逻辑未接通设置持久化层。Demo 中仅默认 Tokyo Night 暗色主题
Git 面板非仓库降级 :cross_mark: 未实现 在非 Git 仓库目录下打开版本控制面板会直接弹出 not a git repository(or any of the parent directories): .git 原始错误,未做优雅降级提示。需用户手动 git init 后再使用
构建 / 运行菜单 :warning: 环境受限 build_run 命令代码完整,但实际点击会因本机缺少 JDK / Android SDK / Gradle 报错。Demo 中视为环境受限的正常表现,不影响核心编辑流程

已验证可用的核心链路:创建 Android 项目 → 浏览文件树 → 编辑 Java 代码(语法高亮)→ 右键菜单(新建 / 重命名 / 删除)→ 全局搜索 → 打开终端 → 命令面板(Ctrl+Shift+P)→ 设置(编辑器 / LSP / 快捷键 tab 查看)→ 关于页面。

实际测试中的已知问题(不影响核心流程,但需说明):

  • 新建项目默认不是 Git 仓库,打开版本控制面板会报 not a git repository 错误(需先手动 git init
  • 视图菜单的"切换主题"点击无效果,仅默认暗色主题可用
  • 构建 / 运行菜单点击会因环境缺失报错(预期行为)
  • 自动保存设置页开关不生效,固定 800ms 延迟保存

3. Demo 体验地址

二选一方案,按推荐度排序

方案 A(推荐):本地安装包下载

下载 NSIS 单文件安装包,双击安装即可体验(Windows 10/11,< 5 秒安装):

下载链接>>> 链接:https://pan.baidu.com/s/1aKdP4ewFbditdVpnewlguA 提取码:m14t <<<

  • 文件名:RustDroid IDE_0.1.0_x64-setup.exe
  • 大小:3.14 MB(3,293,349 字节)
  • SHA256:87A52A4A4318074DB07F74D6CCDE20405A6921E983CC05AC435861190E5B5588

方案 B:免安装可执行文件

免安装,下载解压即用(即 release 构建产物,未做独立便携版打包):

下载链接>>> 链接:https://pan.baidu.com/s/1pZMCfTveJX8u7dk1GeZLXg 提取码:iq2x <<<

  • 文件名:rustdroid-ide.exe
  • 大小:9.65 MB(10,116,096 字节)
  • SHA256:B834DC86B148204DFCCB57131A0B56234D4811C448AE18BEC203AAE8C426D047
  • 双击即可运行(依赖系统 WebView2 运行时,Win10/11 自带)

4. TRAE 实践过程

4.1 整体流程

RustDroid 从立项到可演示 Demo 总耗时约 1-2 周(间歇开发),代码量约 9300 行(实测:Rust 2911 行 + TypeScript 6354 行)。整个开发过程贯穿 TRAE,覆盖架构设计 / 代码生成 / Bug 定位 / 重构 / 测试五个场景。

诚实说明:作者开发本项目前没有 Rust 经验,也未写过 Tauri 应用。若无 TRAE 辅助,以作者现有技术栈(Android + 少量前端)难以独立完成这个 Rust + Tauri 项目。TRAE 在此项目中不仅是效率工具,更是能力拓展工具——让开发者能跨界完成原本不擅长的工作。具体各模块的 TRAE 运用效果见 4.5 节。

4.2 TRAE 运用的 5 个场景

场景 1:架构设计 — Tauri 2.x + Rust workspace 布局

痛点:Tauri 2.x 引入了新的 workspace 结构与权限模型,与 1.x 文档大量混淆;Rust 多 crate workspace 的依赖继承([workspace.dependencies])需手工试错。

TRAE 运用

  • 探索 Tauri 2.x 标准项目结构(src-tauri/ + 前端 + crates/ workspace)
  • 生成 Cargo.toml workspace 配置骨架,公共依赖提取到 [workspace.dependencies],子 crate 用 { workspace = true } 继承
  • 生成 src-tauri/src/lib.rs 模块注册骨架
  • 配置 tauri.conf.json 的 CSP 安全策略

产出:4 个独立 crate(ide-core / ide-editor / ide-ipc / ide-lsp)+ src-tauri 主 crate 整合所有 44 个 Tauri 命令。

场景 2:代码生成 — LSP JSON-RPC 分帧解析

痛点:LSP 基于 JSON-RPC 2.0,消息通过 Content-Length: N\r\n\r\n 头部分帧,手写解析器易出错;rust-analyzer 的 completion / hover / gotoDefinition 响应结构嵌套深。

TRAE 运用

  • 生成 crates/ide-lsp/src/client.rs 的 JSON-RPC 分帧读取器
  • 配对生成 Tauri 命令签名(#[command] pub fn lsp_completion(...))与前端 invoke 封装
  • 自动处理 LSP 0-indexed 与 Monaco 1-indexed 的坐标转换

产出:完整的 rust-analyzer LSP 客户端,覆盖 initialize / didOpen / didChange / didSave / didClose / completion / hover / gotoDefinition 全生命周期。

场景 3:Bug 定位 — ConPTY 窗口弹出与跨文件跳转竞态

痛点 1:Windows 下 portable-pty 启动终端时弹出黑色 cmd 窗口,破坏 IDE 体验。
TRAE 运用:定位到 Command 需设置 CREATE_NO_WINDOW0x0800_0000)标志位,封装跨平台函数。

痛点 2:跨文件跳转存在竞态 — 用户点击定义 → openFile() 异步加载 → Monaco mount 完成 → 调用 revealLine() 定位。若 revealLine 在 mount 前调用会失败。
TRAE 运用:设计 pendingNavigation + revealLineFn 双状态机:openFile 完成后设置 pendingNavigation,等 revealLineFn 就绪 + activeFile 匹配后触发定位。

痛点 3:F5 快捷键在 useEffect([]) 空依赖中注册,捕获陈旧闭包。
TRAE 运用:引入 cargoRunRef ref 模式 — 渲染时 cargoRunRef.current = handleCargoRun,useEffect 中通过 cargoRunRef.current() 调用最新版本。

场景 4:重构辅助 — settings 持久化向后兼容

痛点:v1 settings 文件没有 lsp 字段,新增 LSP 配置后旧用户启动会反序列化失败。

TRAE 运用

  • LspSettings 结构体上添加 #[serde(default)]
  • 生成测试 old_settings_without_lsp_field_loads_default 验证旧配置文件可正常加载
  • 类似处理:rust-analyzer 路径检测从 which crate 迁移到 rustup which + 系统 where / which + --version 验证三段式(避免 rustup shim 误报)

场景 5:测试生成 — 跨语言单测对齐

痛点:fs.rs 的 GBK 编码文件读取、settings roundtrip、verify_lsp_path 等场景易出边界 bug。

TRAE 运用:生成边界单测覆盖:

  • read_file_text_gbk:验证非 UTF-8 文件 lossy 转换不 panic
  • read_file_text_large_rejected:验证大文件(>10MB)拒绝读取
  • settings::roundtrip:验证序列化-反序列化往返一致
  • 前端:uri.test.ts / adapter.test.ts / convert.test.ts / useLsp*.test.tsx

最终测试规模:实测统计 102 个 Rust 测试用例 + 102 个前端测试用例 = 204 个测试用例,覆盖关键模块。

4.3 TRAE 驱动的技术能力实现

技术能力 1:构建日志智能分析(代码完整,技术储备)

说明:此功能代码已完整实现(build_analyzer.rs 20 条规则 + 17 单测),但受限于 demo 环境依赖(gradle build 需要 JDK + Android SDK + 网络),未在初赛 Demo 中现场演示。以下展示代码实现成果。

构建失败时自动解析 cargo / gradle 错误日志,提取错误位置 + 错误类别 + 修复建议,渲染成可点击的诊断卡片,一键跳转到出错代码行。

TRAE 运用独特性

  • 反向解析错误格式:用 TRAE 分析 cargo 的 error[E0433]: failed to resolve: use of undeclared type 与 gradle 的 error: cannot find symbol 等错误格式,归纳为 20 条正则规则
  • 跨语言类型同步:Rust 端 BuildDiagnostic struct ↔ TypeScript 端 BuildDiagnostic interface 自动对齐(#[serde(rename_all = "camelCase")] ↔ TS camelCase)
  • 零 AI 依赖:纯规则引擎,无需联网,无需 API key,启动即用 — 适合离线竞赛环境与低配设备

覆盖规则

  • Rust(10 条):E0433 / E0425 / E0599 / E0277 / E0308 / 语法错误 / --> 位置 / unused import / unused variable / could not compile
  • Gradle / Android(10 条):cannot find symbol / package does not exist / method cannot be applied / incompatible types / ; expected / 编码错误 / FAILURE / What went wrong / Failed to resolve / attribute not found

技术能力 2:ConPTY 集成 — portable-pty 0.8 API 适配(可演示)

Windows 下集成 ConPTY 提供真正的终端体验(支持 vim 等交互式程序,需本机安装),而非简单子进程 stdout 转发。

TRAE 运用独特性:用 TRAE 探索 portable-pty 0.8.1 的 API 差异 — 0.7 版本的 Master trait 在 0.8 重命名为 MasterPty,且 openpty() 返回 Box<dyn MasterPty + Send>。通过 TRAE 快速定位 API 不匹配问题,避免反复查文档。

技术能力 3:Android 模板生成(可演示)

新建项目时一键生成 Android 原生项目骨架,包含完整的 gradle 配置、AndroidManifest、MainActivity.java、布局资源。

TRAE 运用独特性:用 TRAE 生成 AGP 8.1.0 + compileSdk 34 + minSdk 21 + targetSdk 34 的模板,预填 appcompat 1.6.1 / material 1.9.0 / constraintlayout 2.1.4 三个核心依赖。模板通过 include_str! 编译时嵌入二进制,运行时按包名替换占位符生成。

4.4 TRAE 技术运用独特思路

思路 传统方式 TRAE 方式 收益
LSP 协议逆向 直接依赖 lsp-types crate,耦合重 用 TRAE 分析 rust-analyzer 的 JSON-RPC 报文,自行实现轻量级 LSP 客户端 二进制减少约 2MB(估算),启动更快,无外部依赖
跨语言类型同步 Rust struct 与 TS interface 手工对齐,易漏字段 约定 #[serde(rename_all = "camelCase")] + TS camelCase,TRAE 根据 Rust struct 自动生成对应 TS interface 减少人工对齐错误
规则引擎开发 硬编码 if-else 难维护,或上 AI 模型依赖网络 用 TRAE 归纳错误模式为 ErrorPattern { regex, severity, category, message_template, suggestion_template, file_group, line_group } 结构化规则 20 条规则覆盖常见错误,规则可独立增删

4.5 TRAE 在各模块的运用效果

说明:作者开发本项目前无 Rust 经验、无 Tauri 经验。以下记录各模块 TRAE 实际运用情况,不与传统手写做时间对比(因为传统手写对作者而言不可行),也未记录各模块精确耗时(未做时间统计)。

模块 TRAE 主要贡献
LSP 客户端(JSON-RPC 分帧) 生成分帧读取器代码 + LSP 0-indexed 与 Monaco 1-indexed 坐标转换
ConPTY 集成 定位 portable-pty 0.8 API 差异 + CREATE_NO_WINDOW 标志位修复
构建错误规则引擎 归纳 cargo / gradle 错误格式为 20 条结构化规则
Android 模板生成 生成 AGP 8.1.0 模板文件 + 占位符替换逻辑
Tauri workspace 架构 生成 Cargo.toml workspace 配置 + 模块注册骨架
跨文件跳转竞态修复 设计 pendingNavigation + revealLineFn 状态机

4.6 开发关键步骤截图

以下截图证明开发过程真实,对应 TRAE 关键任务对话

截图 1:项目架构与 Tauri 2.x workspace 布局

4 个 workspace crate + src-tauri 主 crate,44 个 Tauri 命令注册

截图 2:构建日志智能分析规则引擎(已实现的技术储备)

build_analyzer.rs 的 20 条 ErrorPattern 规则定义 + 17 个单测

截图 3:LSP 客户端 JSON-RPC 分帧解析

crates/ide-lsp/src/client.rs 的 Content-Length 分帧读取器

截图 4:TRAE 对话过程(项目想法构建)

TRAE 辅助从零构思项目定位、目标用户与核心功能

截图 5:跨文件跳转状态机设计

App.tsx 的 pendingNavigation + revealLineFn 双状态机

截图 6:204 个测试用例

102 Rust 测试 + 102 前端测试用例

4.7 关键任务对话的 Session ID

**Session ID 是 TRAE 每段对话任务的唯一标识,用于证明作品由 TRAE 开发完成。**以下为开发过程中所有 TRAE 对话的真实 Session ID(按时间排序),初赛指南要求不少于 3 个,本作品提供 8 个。

# 时间 任务主题
1 2026/6/28 09:58:48 想法构建
2 2026/6/28 11:05:56 技术栈选取
3 2026/7/2 21:07:32 项目创建和完善
4 2026/7/2 22:01:22 项目创建和完善
5 2026/7/2 22:30:11 项目创建和完善
6 2026/7/2 22:52:12 项目创建和完善
7 2026/7/2 22:54:57 项目创建和完善
8 2026/7/3 20:25:39 项目创建和完善

完整 Session ID(上表为简写,以下为完整值,可双击 TRAE 对话复制核实):

  1. 2451240502176387:637976c1cb98da374577dbe98cda6117_6a407fd8d413920eeb0b8564.6a407fd8d413920eeb0b8567.6a407fd8d413920eeb0b8565:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/28 09:58:48)
  2. 2451240502176387:9f495536cab06ce3d4386b6cf194f0b9_6a407fd8d413920eeb0b8564.6a408f94d413920eeb0b8913.6a408f94d413920eeb0b8911:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/28 11:05:56)
  3. 2451240502176387:517994633a0fa6ed72f147588681e52c_6a40c2ea01191c488dbf8125.6a4662941523526cf9d7609c.6a4662936932d76eb6e3d203:Trae CN.T(2026/7/2 21:07:32)
  4. 2451240502176387:fd9d2f1f7e45de3f8337b8e38a3d6aa2_6a40c2ea01191c488dbf8125.6a466f321523526cf9d762ad.6a466f316932d76eb6e3d205:Trae CN.T(2026/7/2 22:01:22)
  5. 2451240502176387:004ce11b4d80c1c5799ea4d013e8334c_6a40c2ea01191c488dbf8125.6a4675f31523526cf9d763de.6a4675f26932d76eb6e3d206:Trae CN.T(2026/7/2 22:30:11)
  6. 2451240502176387:7e01ec8b4aafcabcc701530659078d5c_6a40c2ea01191c488dbf8125.6a467b1c1523526cf9d76455.6a467b1c6932d76eb6e3d209:Trae CN.T(2026/7/2 22:52:12)
  7. 2451240502176387:7e7aaa819e2fa18ba9e2f320f392baa6_6a40c2ea01191c488dbf8125.6a467bc11523526cf9d7648a.6a467bc16932d76eb6e3d20a:Trae CN.T(2026/7/2 22:54:57)
  8. 2451240502176387:41f294c1a76a1192d3440be366591a54_6a40c2ea01191c488dbf8125.6a47aa433014b97a15289f95.6a47aa425e5599300b092e4b:Trae CN.T(2026/7/3 20:25:39)

开发时间线说明:6/28 完成想法构思与技术栈选型;7/2-7/3 集中进行项目创建与功能完善,共 6 个 session 覆盖架构搭建、LSP 客户端、终端集成、构建系统、前端组件、测试与 Bug 修复等全部开发工作。


5. 工程验证清单

验证项 状态 证据
Rust 代码量 :white_check_mark: 2911 行 实测统计(含 src-tauri/src + crates)
TypeScript 代码量 :white_check_mark: 6354 行 实测统计(不含 node_modules)
Rust 测试用例 :white_check_mark: 102 个 #[test] + #[tokio::test] 等标记统计
前端测试用例 :white_check_mark: 102 个 11 个 .test.ts/.tsx 文件
测试用例总数 :white_check_mark: 204 个 Rust 102 + 前端 102
Rust clippy :white_check_mark: 零警告(最后一次运行) cargo clippy --all-targets -- -D warnings
Rust 格式化 :white_check_mark: 通过 cargo fmt --check
TypeScript 类型检查 :white_check_mark: 零错误 npx tsc --noEmit
前端构建 :white_check_mark: 通过 npm run build
生产构建 :white_check_mark: 9.65 MB 可执行文件 target/release/rustdroid-ide.exe(含 LTO + strip)
NSIS 安装包 :white_check_mark: 3.14 MB target/release/bundle/nsis/RustDroid IDE_0.1.0_x64-setup.exe
MSI 安装包 :cross_mark: 未生成 tauri.conf.json 声明了 msi target 但实际未产出,未排查

与 Android Studio 量化对比

说明:Android Studio 数据为公开资料口径(IDE 本体,不含 SDK);RustDroid 数据为实测。启动时间与内存占用为目标值,未做严谨基准测试。

维度 Android Studio RustDroid 倍数
安装包大小 1.2 GB+(IDE 本体) 3.14 MB 约 380x 更小
可执行文件 ~3 GB 9.65 MB 约 300x 更小
冷启动时间(目标值) 30-60 秒 < 2 秒 15-30x 更快
内存占用(目标值) 4-8 GB 200-400 MB 10-20x 更低

6. 技术栈

后端(Rust):Tauri 2.1 + portable-pty 0.8(ConPTY)+ notify 8(文件监听)+ walkdir 2(全局搜索)+ regex 1(规则引擎)+ encoding_rs 0.8(GBK 兼容)+ tracing(日志)

前端(TypeScript):React 19 + Vite 6 + Monaco Editor 0.55 + @xterm/xterm 6 + Zustand 5 + @tauri-apps/api 2

架构:4 个 Rust workspace crate(ide-core / ide-editor / ide-ipc / ide-lsp)+ src-tauri 主 crate + React 前端

License:Apache-2.0

我靠若果这东西成品还能这么小的话,那也太牛逼了,你将在编程圈有一席之地很好的想法,能麻烦您点这里互相投票回复支持一下我的作品吗

很有创意很天才的想法,已给你投票点赞,可以互相投票点赞支持吗?这是我的链接【社会服务+社会公益赛道】鲜知 — 以保鲜决策为切入口的食品安全 AI 助手 - TRAE AI 创造力大赛 / 【大赛初赛专区】 - TRAE 官方中文社区