OpenIDEA:用 Rust 做 IntelliJ 风格桌面 IDE,GitHub 257 Star

JetBrains 系 IDE 的启动和内存占用,是 OpenIDEA 要换掉的那一层:keymap、工具窗口、Search Everywhere 这些操作习惯留着,核心用 Rust 写,外面是原生桌面窗口。README 列出的能力包括编辑器、代码洞察、调试器、Git、终端、数据库客户端和 HTTP 客户端,安装包覆盖 macOS、Windows 和 Linux。

2026-10-28 查 GitHub API:Star 257,Fork 21,默认分支 main 可见 commit 151。最新 Release v0.1.18,发布于 2026-10-27 22:20(北京时间)。仓库创建于 2026-10-21,创建时间不等于公开发布时间。


1. 对照的是一次热缓存打开

README 用 freqtrade(Python,约 770 个文件)做对比:热缓存,5 次取中位数。OpenIDEA 取 main 的 release 构建,对照物是 IntelliJ IDEA 2026.2.3 的默认设置和插件,机器为 Windows 11、32 核 AMD、62 GB 内存。作者写明 IDEA 对 Python 分析得更深,两边的 “ready” 不是同一份工作;测量都从进程外部进行,脚本在 perf/compare。

指标

OpenIDEA

IntelliJ IDEA 2026.2.3

项目窗口出现

0.9 秒

3.1 秒

Ready(CPU 平稳)

1.1 秒

13.2 秒

内存(USS,全部进程)

169 MB

2011 MB

到 Ready 的 CPU 时间

2.4 秒

47.9 秒

空闲 CPU

单核的 4%

单核的 7%

退出

0.3 秒

5.9 秒

这组数字来自仓库 README,本文没有在本机重跑。

2. 语言定义和语言服务是分开配的

languages/ 里有 72 个 toml。README 写的是 60+ languages。这些文件并不等于 72 种语言都有同一深度的补全和调试:其中包含 plaintext、diff、log、http、ignore 这类定义。

抽两个能对上实现的例子。languages/python.toml 把高亮交给 tree-sitter 的 python,语言服务写了 basedpyright 和 pyright,并给出 pip install basedpyright 这类安装提示。languages/java.toml 的调试段指向 Microsoft java-debug,注释写明调试会话从 jdtls 里启动。v0.1.18 的更新说明里有一条:jdtls 改为直接在 JVM 上启动,并把协议外的服务端输出报出来。

main 上比 v0.1.18 更晚的一笔提交是 feat(lsp): Configure language servers and add servers of one's own(#108),提交时间 2026-10-28 03:40(北京时间)。v0.1.18 的 Release 说明还没有这条,装最新安装包不等于拿到 main 上的这项。

3. 调试、Git、终端、数据库和 HTTP 各有一个 crate

工作区按功能拆 crate,版本号都跟 workspace 的 0.1.18 走。和 README 对得上的几块:

  • ide-dap:Debug Adapter Protocol 客户端,描述写了会话、断点、线程、栈帧、变量和求值。

  • ide-vcs:版本控制。v0.1.18 里,Git Log 双击可在日志视图之间切换,Cmd/Ctrl+C 复制分支名;从某次提交的文件可以 Jump to Source。

  • ide-terminal:终端。前端依赖 @xterm/xterm 6。

  • ide-db:数据库工具,crate 描述是数据源、连接、内省、执行查询和编辑表,依赖 sqlx。本文没有核到具体支持哪些数据库产品。

  • ide-http:HTTP Client,处理 .http 文件、环境、执行和响应历史。v0.1.18 可以从 Spring Web 的映射生成 HTTP 请求。同一版还加了 Maven Dependency Analyzer,能看冲突、使用路径和 Exclude。

编辑器侧,v0.1.18 在 gutter 加了图标,用来在接口、实现和覆写之间跳转。大 diff 块和连续改动背景有一次修复。项目视图里,单击可以展开目录。

4. 插件是沙箱里的 WASM 组件

plugins/README.md 写明插件是 wasmtime 的 WebAssembly component(WASI preview 2),风格接近 Zed 的扩展。插件可以注册命令(进入 Search Everywhere,也能绑快捷键)、读项目文件、往编辑器插文本、发通知,以及贡献主题和语言。只贡献主题或语言时可以不带代码。

接口定义在 wit/plugin.wit,版本 openidea:plugin/plugin@0.1.0。示例包是带两个命令的 hello,以及只有清单的 language-toy。权限名包括 project-read、editor-read、editor-write。v0.1.18 另有主题预设:Solarized,以及 Atom One 的浅色和深色,来自贡献者 bghtyu 的首次 PR。


5. 功能与来源

能力

现在能对上的依据

IDEA 式 keymap、工具窗口、Search Everywhere

README

72 个语言定义文件,高亮走 tree-sitter

languages/*.toml

LSP 生命周期和文档同步

ide-lsp;Python / Java 的 toml

DAP 调试

ide-dap;Java 的 java-debug 配置

Git

ide-vcs;v0.1.18 的 Git Log 改动

终端

ide-terminal 与 xterm.js

数据库客户端

ide-db(sqlx)

HTTP 客户端

ide-http;v0.1.18 的 Spring 映射生成

WASM 插件

plugins/README.md

桌面安装包

v0.1.18 附件:macOS aarch64/x64 dmg,Windows x64 exe 与 msi,Linux x86_64 deb、rpm、AppImage

许可

Apache-2.0

仓库页脚写明与 JetBrains 无关联,IntelliJ IDEA 是 JetBrains s.r.o. 的商标。

6. 安装和本地开发

装现成的包,打开 Releases 最新版。v0.1.18 的附件是上面那一组桌面包,另外有 latest.json 和若干 .sig。没有看到 Linux aarch64 安装包。

从源码跑开发版,README 的命令是:

pnpm install
pnpm tauri dev

README 要求 Rust 1.96、Node 22、pnpm,以及 Tauri 前置条件。Cargo.toml 的 rust-version 同样是 "1.96",edition 为 2024。package.json 没有 engines 字段,Node 22 只出现在 README。

7. 作者

仓库属主是 GitHub 用户 l0ng-ai。2026-10-28 的用户 API 里,name、bio、company、location、个人网站都是空的。账号创建于 2016-12-25,公开仓库 23 个,followers 38。workspace 的 authors 写成 “OpenIDEA contributors”,没有个人履历。这里不把账号名推断成真实姓名。

提交数最高的是 l0ng-ai(138)。其余 6 个账号的提交数是 6、2、2、1、1、1。v0.1.18 的新贡献者是 bghtyu 和 itning。

8. 技术栈

层

选型

用途

版本怎么来的

核心语言

Rust

workspace 里的 IDE crate

rust-version = "1.96",edition 2024

界面语言

TypeScript

前端

开发依赖 typescript ~6.0.3,不是用户机器的最低运行版本

界面

React 19、CodeMirror 6

窗口和编辑器

package.json 依赖

终端控件

xterm.js 6

终端视图

@xterm/xterm ^6.0.0

桌面壳

Tauri 2

原生窗口

@tauri-apps/api ^2,src-tauri 的 tauri 2

前端构建

Vite 8、pnpm

安装与打包前端

package.json 脚本;README 用 pnpm

语言服务

LSP(lsp-types)

补全、诊断等

ide-lsp

调试

DAP

断点与变量

ide-dap

数据库工具

sqlx

连接、内省、查询

ide-db 的依赖

HTTP

reqwest

发请求

ide-http 的依赖

插件

wasmtime component、WIT

沙箱扩展

plugins/README.md

分发

GitHub Releases

桌面安装包

tag v0.1.18

9. 项目活跃度

查询时间:2026-10-28。

指标

数值

Star

257

Fork

21

Contributors

7

累计 commit

151

最近 commit 日期

2026-10-28 03:40(北京时间)

开放 Issue

4

开放 PR

1

已合并 PR

67

已关闭未合并 PR

0

Release

17 个;最新 v0.1.18,2026-10-27 22:20(北京时间)

仓库创建于 2026-10-21 20:23(北京时间)。从创建到这次查询大约一周,Release 已经有 17 个,最近一次提交落在查询日凌晨,已合并 PR 67 个。这些是近期发版和合并的事实,不能据此说长期维护已经稳定。累计 commit 是默认分支上的可见总数,不是近一周的提交频率。接口里的 updated_at 没有当成最近代码提交时间。

10. 如何贡献

仓库根目录没有 CONTRIBUTING.md。下面只写已经能打开的入口,没有书面的分支模型和合并规则。

  1. 反馈:用 Issues。2026-10-28 有 4 个开放 Issue,标题是「插件」(两条)、「无法在菜单选择更新」、「代码比对」。已关闭 Issue 36 个。

  2. 讨论和改动范围:没有单独的贡献指南划定欢迎改什么。插件作者可以按 plugins/README.md 做 WASM 组件或纯主题/语言包,那是插件说明,不是仓库的合并规则。

  3. 提交 PR:打开 Pull requests。当前开放 1 个,已合并 67 个。没有写明必须跑哪条验证命令。package.json 里能看到的脚本包括 pnpm test(vitest)、pnpm e2e(Playwright)和 pnpm tauri dev。

11. 从哪里开始


资料与使用说明

  1. Star、Fork、仓库创建时间、pushed_at、许可、默认分支,来自 2026-10-28 的 GET /repos/l0ng-ai/openidea。Star 257 是累计总数,不是某一周期的新增。没有查询 GitHub Trending,标题不用「本月新增」。

  2. 累计 commit 151 来自同一天 GET /repos/l0ng-ai/openidea/commits?per_page=1 的 Link 头,rel="last" 的页码是 151,对应默认分支。最近 commit 日期取该接口第一条的 committer 时间 2026-10-27T19:40:18Z,换算成北京时间 2026-10-28 03:40。Contributors 提交数合计也是 151(138+6+2+2+1+1+1),两边一致,但口径仍以提交列表的 Link 为准。

  3. Contributors 为 7。接口是 GET /repos/l0ng-ai/openidea/contributors?per_page=100&anon=1,只有一页。7 个都是 type=User,包含作者 l0ng-ai,返回里没有 Bot,也没有匿名贡献者。这个数按账号计,不等于维护团队人数,也不包括只开过 Issue、只参与讨论或只有未合并 PR 的人。

  4. 开放 Issue 4、已关闭 Issue 36,来自 2026-10-28 的 Search API(type:issue)。开放 PR 1、已关闭 PR 67 且全部带 merged_at,来自 GET /pulls?state=open|closed&per_page=100,两页都没有 rel="next"。已关闭未合并按 0 计。

  5. Release 共 17 个,来自 GET /releases?per_page=20 的列表长度(返回 17 条)。v0.1.18 的发布时间 2026-10-27T14:20:36Z,北京时间 2026-10-27 22:20。安装包文件名来自该 Release 的 assets,本文没有下载安装。

  6. 基准表转述 README,访问日期 2026-10-28。作者已经写了测试条件,以及 IDEA 侧 “ready” 工作量更重。不要把 169 MB / 1.1 秒理解成所有项目、所有平台上的结果。

  7. main 比 tag v0.1.18 多至少一笔 #108(可配置语言服务)。功能描述若只出现在 main 的提交里,正文已单独标出,没有写成 v0.1.18 安装包已包含。

  8. Node 22 只在 README 的 Build 一节。Rust 1.96 同时出现在 README 和 Cargo.toml 的 rust-version。TypeScript ~6.0.3、Vite 8、React 19 是仓库自己的依赖版本,不是给使用者规定的最低版本。sqlx 只确认到 ide-db 的依赖声明,没有列出它打开了哪些数据库驱动 feature。

  9. 没有 CONTRIBUTING.md,也没有官网(homepage 为空)。本文没有把 Issue 模板或讨论区规则写成已经存在。

  10. 与 JetBrains 的关系以仓库声明为准:Not affiliated with JetBrains。

排序方式 :

成为第一条评论!

Nobody's responded to this post yet. Add your thoughts and get the conversation going.