正文
很早之前我们写过一篇关于 VSCode 的文章,主题是为什么同样都是 Electron 开发的,为什么 VSCode 那么快,在那篇文章中我们系统的分析了原因,那就是 VSCode 团队在 Electorn 之上做了大量的优化,比如优化了进程间通信,重新实现了编辑器核心组件 Text Buffer,引入全新数据结构 Piece Tree 等等。
前两天刷到一篇文章讲了 Windows 这么多年下来竟然有多达 14 种的 GUI 方案也是让我感慨良多,没有想到微软做的最佳的 GUI 应用之一 VSCode 竟然是 Electorn 做的,而不是用的微软自家的 GUI 方案。
由于 Electorn 内置了一个 Chromium 内核,好处就是多平台一致性得到了保证,坏处就是安装包有一点点大,而目前除了 Electorn 做跨平台还有另外一种更轻量级的方案,那就是 Tauri。Tauri 直接使用系统内置的 WebView, 优势就是打包体积小,不足的地方就是Linux, Windows, MacOS 三家的 WebVIew 实现都不一样,所以同样的代码在三个平台上的渲染效果可能会有差异。

说实话,我这辈子也想不到 VSCode 能和 Tauri 扯上什么关系,直到前段时间我看到有个国外老哥发了个帖子,他说他用 Tauri 重新构建了 VSCode, 由于 Electorn 后端是 NodeJS, 而 Tauri 后端是 Rust。所以这个老哥灵机一动,把 VSCode 前端 5000 多个 TypeScript 的文件迁移过去,然后用 Rust 重写的后端代码进行重新绑定,神奇的是,最后还真的成功跑起来了。

这样带来的直观的效果是, 在功能UI几乎不变的前提下,VSCode 被从 Electorn + NodeJS 迁移到了 Tauri + Rust,并且安装包体积从 250MB 降低到了15MB.
现在我想起来还是觉得这事儿很离谱,能想到这个思路的小哥真的是个人才了。
后面这个小哥也把代码给开源了出来,这个开源项目就是 sidex。
简单看了下提交,210 万行代码,而且根据作者的描述,这次迁移主要是使用 AI 完成的,大概耗费了 4000 个 Agent 代理。不过能使用 AI 完成如此复杂的代码迁移操作,说明作者还是有两把刷子的。

不过由于迁移本身并不是无损的,所以虽然 sidex 把 VSCode 大部分代码都迁移了过去,部分功能例如代码高亮,git,搜索,部分第三方扩展也确实可用,但是仍然有一些功能没有完全就绪,例如 debug, 多窗口,当然还有 Tauri 在不同平台不一致的渲染问题。作者说会继续维护这个项目,老实说,这确实是一次非常脑洞大开的实验,只是完全做到 VSCode 那样,这条路还有很远很远,不知道后续作者能不能坚持下去了,但是如果 Token 管够的话,貌似这件事也并非真的做不到。
如果开源项目也有图一乐的话,那么 sidex 看起来非常适合,目前 sidex 只有 300 多个Star,虽然不多,但是仍然不影响我认为这是一个非常有趣而且脑洞大开的实验。
开源地址:
https://github.com/Sidenai/sidex
往期文章
历史开源项目

韩数同学历史发布过很多有趣的开源项目,如果你懒得翻文章一个个找,你可以关注韩数同学。 我们整理了一个合集,希望可以帮助到你。
夜雨聆风