编程 Pake:Rust 重写 Slack,524MB 变 8MB,受够了 Electron 的开发者动手了

2026-07-06 21:25:56 +0800 CST views 9

Pake:Rust 重写 Slack,524MB 变 8MB,受够了 Electron 的开发者动手了

你的电脑没坏。是 Slack、Discord、Notion 这些桌面应用——每一个都在后台跑着一个完整的 Chrome 浏览器。

一个叫 tw93 的中国开发者算了一笔账,然后动手了。

  • Slack:524MB → 8MB
  • Discord:265MB → 9MB
  • ChatGPT:260MB → 9MB

不是优化了 20%,是干掉了 98%。工具叫 Pake,GitHub 五万五千多颗星,免费开源。

为什么 Electron 这么吃内存

Electron 的壳不是薄薄一层——是把整个 Chromium 浏览器塞进去了。你用 Slack,等于同时开了 Chrome;开 Discord,又一个 Chrome;Notion,第三个 Chrome。十个 Electron 应用,十个独立 Chrome 在后台打架。

Pake 选了 Tauri——一个用 Rust 写的桌面框架。核心区别一句话:

  • Electron:自带 Chrome
  • Tauri:用操作系统自带的浏览器引擎(macOS 用 WebKit,Windows 用 WebView2,Linux 用 WebKitGTK)

你的电脑本来就有浏览器引擎,不需要每个应用再带一份。这就是 60 倍差距的来源——不是 Rust 比 JavaScript 快多少,而是从根本上少了一整个浏览器。

怎么用:两分钟把网页变成 App

零门槛路线:打开 Pake 的在线构建页面,输入网址,填个名字,点一下。GitHub Actions 自动给你生成 macOS、Windows、Linux 三个平台的安装包。

命令行路线

# 安装命令行工具
pnpm install -g pake-cli

# 打包任意网页
pake https://example.com --name MyApp

# 自定义更多参数
pake https://weekly.tw93.fun --name Weekly \
  --icon https://cdn.tw93.fun/pake/weekly.icns \
  --width 1200 --height 800 --hide-title-bar

第一次打包会慢一些(要下载 Rust 编译依赖),之后每次几秒钟。

注意:命令行方式需要 Node >= 18 和 Rust >= 1.85。Windows 用户装 Rust 请走官网 rustup 安装器。

社区已打包好的应用

社区已经预构建了十几款常用应用的 Pake 版,下载即用:

AI 聊天类:ChatGPT、DeepSeek、Grok、Gemini——全都有独立窗口、全局快捷键、拖放上传文件。

内容消费类:微信读书、YouTube、YouTube Music、Twitter、小红书——放在 Dock 里,想用就点开,用完关掉不占内存。

效率工具类:Excalidraw 画图、荔枝 FM 听播客。

每一个都小于 10MB,全部免费。

实际场景:同时开着 DeepSeek 写代码、ChatGPT 翻译文档、YouTube Music 放背景音乐。Electron 版本内存爆炸,Pake 版本三个加起来不到 30MB。

不只是"省内存"

全局快捷键:前进后退、刷新、缩放、复制 URL、清缓存重启。Mac 用户还支持手势滑动返回、双击标题栏全屏。

沉浸窗口:隐藏标题栏,让网页工具看起来像一个真正的原生 App。

样式自定义:写几行 CSS,Pake 在打包时给你注入进去,可以去掉网页里的广告位或侧边栏。

跨平台一致:macOS 的 dmg、Windows 的 msi、Linux 的 deb 和 AppImage,一条命令三种包全出。

一个人写了四年

Pake 的作者 tw93,2022 年创建项目,四年来一直在维护。五万五千多颗星、一万多个 fork——中文开源圈的现象级项目。

没有融钱,没有成立公司,没有把 Pake 变成 SaaS。他还在写代码,维护着开源项目,靠一个叫 Mole 的 Mac 清理工具补贴生活。

一个中国开发者的 Rust 项目,被一个西班牙语博主用一条推文推向全球,两天时间被翻译成几十种语言传播。

"有时候,真正的改变只需一个人厌倦了现状。"

最适合 Pake 的场景

那些你每天要打开好几次、每次用完就关掉的网页工具。把它们变独立 App 省的不只是内存——是来回切标签页的烦躁感。

Pake 不是银弹,它只是解决了一个具体的、烦人的问题,而且解决得漂亮。

开源地址:https://github.com/tw93/pake

推荐文章

Vue3中的JSX有什么不同?
2024-11-18 16:18:49 +0800 CST
Node.js中接入微信支付
2024-11-19 06:28:31 +0800 CST
设置mysql支持emoji表情
2024-11-17 04:59:45 +0800 CST
CSS 中的 `scrollbar-width` 属性
2024-11-19 01:32:55 +0800 CST
MySQL 日志详解
2024-11-19 02:17:30 +0800 CST
程序员茄子在线接单