Pake 只做一件小事,而且做得很干净:给它一个网址,它还你一个 macOS、Windows、Linux 上手感接近原生的桌面应用。pake https://github.com --name GitHub,你就有了一个 GitHub.app。它多年来一直是 GitHub 上星数最高的中国开发者项目之一(2022 年 10 月创建,截至 2026-06 已过 5.2 万星),并且持续上榜,因为它的卖点一直没过时:大家想让每天用的网页工具进驻 dock、配个快捷键,又不想背上 Electron 的体积。
它到底是什么
底层上 Pake 是 Tauri 之上一层薄而有主张的封装。Tauri 是那个用操作系统自带 webview、而不打包 Chromium 的 Rust 框架,产物小就是因为它。项目方说一个 Pake 包通常约 5MB,大概是同等 Electron 应用的二十分之一,因为里面没有塞一个浏览器引擎。
知道它是「Tauri webview 套壳」,基本就能判断它合不合你用。你拿到的「应用」就是那个网站,加载在系统 webview 里,再加上 Pake 叠的一组便利功能:全局快捷键、沉浸式标题栏、拖拽、基础的样式与广告注入、缩放控制。如果那个站本身是个不错的单页应用,效果相当舒服。如果你要的是真正的离线能力、深度系统集成,或者页面上根本不存在的逻辑,那就超出套壳能给的范围,得去写一个正经的 Tauri 或原生应用了。
三种用法
README 把不同用户指向不同入口,这几条路的投入差别是实打实的:
- 预打包应用。 releases 页直接发好 ChatGPT、Gemini、Grok、DeepSeek、微信读书、Excalidraw、YouTube Music 等现成包。零配置,下载即用。
- CLI。 给你自己的站用:
pnpm install -g pake-cli
pake https://github.com --name GitHub
# 带参数
pake https://weekly.tw93.fun --name Weekly --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800 --hide-title-bar
首次打包慢,因为要装工具链;之后就快了。不传图标时会自动抓站点图标。
- GitHub Actions 在线构建。 完全不想在本地装 Rust 工具链的话,项目给了一个 Actions 工作流,在 CI 里把应用构建好、把产物交给你。这是最多人忽略的一条路,对非开发者也最省事。
要本地开发 Pake 本身,需要 Rust >=1.85 和 Node >=22,然后 pnpm i && pnpm run dev。
大家真正会搜的许可证细节
Pake 是 GPL-3.0,这通常会吓退商业用户。容易在 README 里漏看的关键一点是 Pake 输出例外条款:你用 Pake 打出来的应用归你自由使用和分发,copyleft 管的是 Pake 自己的源码,不会伸进你打包出来的应用里。如果你把 Pake fork 进自己的产品,作者请你改个名字并注明来源。所以用 CLI 把公司的 web 工具打成桌面应用没问题;真正受 GPL 约束的是「把 Pake 本身改名再发一遍」这种情况。
几个该知道的坑
它的 issue 区很小、维护得好(同时开着的常年只有几条,这本身也说明了维护质量),但两件事会反复出现。
Windows 上从源码构建可能报链接错误(LNK1104),根因是工程放在很深的目录时撞上系统路径长度限制。解法是把构建目录挪到靠近盘符根部的短路径,或开启长路径支持。如果你的 CI 或本地构建死在链接这一步,通常就是这个原因。
另一个是 CLI 选项的文档漂移:help 输出和文档不总是列全每个参数,所以当你预期的某个 flag 找不到时,去翻源码或最近的 release,而不要默认它被删了。
同类对比
| 工具 | 是什么 | 什么时候选它 |
|---|---|---|
| Pake | 基于 Tauri 的一行命令网页套壳 | 给每天用的 web 应用做个又快又小的桌面壳 |
| Tauri | Pake 底层那个 Rust 框架 | 你需要真正的原生代码、插件或离线逻辑 |
| Electron | 打包 Chromium 的应用框架 | 你要完全可控,并接受体积和内存代价 |
| PWA 安装 | 浏览器原生的 web 应用安装 | 站点本身已是好用的 PWA,你想要零工具链 |
本站库里没有和 Pake 完全对位的项目,因为它待在一个很窄的小生态;喜欢小巧 Rust 工具的话,看下面几个 Rust 项目。
FAQ
Pake 免费吗? 免费,GPL-3.0 开源。因为有 Pake 输出例外条款,你用它打出来的应用完全归你自由使用和分发,GPL 管的是 Pake 自己的源码。
Pake 和 Electron 有什么区别? Pake 用 Tauri,靠系统 webview 而不打包 Chromium,所以包很小(项目方称约 5MB,大概小二十倍)。代价是你依赖系统 webview、拿到的是套壳网站;当你需要一个完全可控、自带运行时的应用时,Electron 仍然更合适。
不装任何东西能打包网站吗? 能。用项目给的 GitHub Actions 在线构建,在 CI 里编译并给你安装包,本地不需要 Rust 或 Node 工具链。
Windows 构建为什么报 LNK1104? 那是 Windows 路径长度限制在工程目录太深时撞上了链接器。把构建目录挪到靠近盘符根部的短路径,或打开长路径支持。
应用能离线用吗? 只能到网站本身能离线的程度。Pake 在 webview 里加载的是实时页面,所以一个不做离线的站,在应用里也只能联网用。
相关仓库
- apple/container 和 tursodatabase/turso:其它值得看的 Rust 项目
- 更多见 Rust 话题页