← 返回信息流
GitHub 热榜GitHub Trending · 日·2 小时前

Pake:一键将网页封装为桌面应用

原标题:tw93/Pake
Rust53,243 stars+2,398 今日

速览

Pake 是一个基于 Rust 开发的开源工具,允许开发者通过一条命令将任何网页打包为独立的桌面客户端应用。它支持 macOS、Windows 和 Linux 平台,特别适合将 Web 应用(如 SaaS 工具、社交媒体页面)快速转化为轻量级、易分发的桌面软件。

AI 深度解读

这是什么

Pake 是一个基于 Rust 和 Tauri 框架构建的开源工具,由开发者 tw93 创建。它的核心使命是将任意网页转化为轻量级的桌面应用程序。该项目在 GitHub 上已获得超过 53,000 颗 Star,是目前将 Web 应用本地化最流行的解决方案之一。

Pake 支持 macOS、Windows 和 Linux 三大主流操作系统。与传统的 Electron 打包方案不同,Pake 利用 Rust 的低内存占用和高执行效率,实现了极小的应用体积和更快的启动速度。无论是个人开发者想要将常用的 Web 工具封装成本地 App,还是企业需要快速部署内部 Web 系统,Pake 都提供了一个“一条命令”即可完成的极简工作流。

解决的问题

在 Pake 出现之前,将网页应用转化为桌面端体验主要面临以下痛点:

  1. 体积臃肿:传统的 Electron 框架虽然跨平台且开发便捷,但其打包后的应用通常包含完整的 Chromium 内核和 Node.js 运行时,导致单个应用体积动辄上百 MB 甚至 GB 级别,占用大量磁盘空间。
  2. 资源消耗高:Electron 应用通常比原生应用或轻量级方案消耗更多的内存和 CPU 资源,对于低配置设备或追求极致性能的用户来说体验不佳。
  3. 配置复杂:传统的 Tauri 开发需要配置复杂的 Rust 环境、构建脚本以及前端工程化流程,对于只想快速将网页打包成 App 的非资深开发者而言,门槛较高。

Pake 通过封装 Tauri 的核心能力,屏蔽了底层 Rust 开发的复杂性,同时保留了 Tauri 轻量、高性能的优势,完美解决了上述问题。

核心功能

  • 一键打包:通过 CLI 工具或在线构建平台,只需一条命令即可将指定 URL 打包为桌面应用。支持自定义应用名称、图标、窗口尺寸等参数。
  • 多平台支持:一次构建,跨平台分发。生成的应用原生支持 macOS、Windows 和 Linux,且针对各平台的窗口行为进行了优化。
  • 沉浸式体验
    • 支持隐藏标题栏,实现无边框沉浸式窗口。
    • 支持快捷键自定义、拖拽窗口、双击标题栏全屏等交互优化。
    • Mac 用户支持手势导航(前进/后退)和窗口拖拽移动。
  • 功能增强
    • 广告移除:内置脚本支持去除网页广告,提供更纯净的阅读或操作体验。
    • 样式定制:允许注入自定义 CSS,调整网页在桌面端的显示效果。
    • 容器通信:支持前端与后端(Rust/Tauri)之间的消息通信,便于开发更复杂的交互逻辑。
  • 灵活的使用方式
    • CLI 模式:适合开发者,本地安装 pake-cli 进行快速打包。
    • 在线构建:提供 GitHub Actions 在线打包服务,无需本地安装 Rust 和 Node.js 环境,适合初学者。
    • 预打包应用:提供 Popular Packages 下载,用户可直接获取热门网站的现成桌面版。

亮点 / 与同类相比

  • 极致轻量:Pake 打包的应用体积通常仅为 5MB 左右,比同等功能的 Electron 应用小约 20 倍。这对于网络分发、快速下载和节省用户磁盘空间具有巨大优势。
  • 高性能与低内存:基于 Tauri(Rust + Webview),Pake 应用启动速度更快,内存占用显著低于基于 Chromium 的 Electron 应用,运行更加流畅。
  • 开发门槛极低
    • 对比 Tauri 原生开发:Pake 封装了复杂的构建流程,用户无需编写 Rust 代码或配置 Cargo 文件,只需关注 URL 和基本参数。
    • 对比 Electron:虽然 Electron 生态更成熟,但 Pake 在“轻量级”和“快速交付”场景下具有压倒性优势。
  • 开源与自由:采用 GPL-3.0 协议,允许用户自由构建和分发应用。官方鼓励用户将 Pake 用于个人产品,但要求 fork 时更改名称并注明来源,尊重开源贡献。

适合谁用 / 上手

适合人群

  • 普通用户:希望将常用的 Web 服务(如邮箱、笔记、RSS 阅读器、内部管理系统)转化为类似原生应用的桌面软件,享受更好的窗口管理和快捷键体验。
  • 前端开发者:希望快速将 Web 项目打包为桌面应用,无需深入学习 Rust 或 Electron 的复杂配置。
  • 独立开发者:需要快速构建轻量级桌面应用原型,或为现有 Web 产品提供桌面端入口。

上手指南

环境要求

  • Rust:版本 >= 1.85
  • Node.js:版本 >= 22(推荐 LTS;>= 18 也可用)

快速开始(CLI 方式)

  1. 安装 CLI 工具

    pnpm install -g pake-cli
    
  2. 基础使用(自动获取网站图标):

    pake https://github.com --name GitHub
    
  3. 高级用法(自定义图标、窗口大小、隐藏标题栏等):

    pake https://weekly.tw93.fun --name Weekly --icon https://cdn.tw93.fun/pake/weekly.icns --width 1200 --height 800 --hide-title-bar
    

本地开发(针对贡献者或深度定制者)

  1. 克隆项目并安装依赖

    pnpm i
    
  2. 启动开发模式(右键可打开调试模式):

    pnpm run dev
    
  3. 构建应用

    pnpm run build
    

不想配置环境?

可以使用 GitHub Actions Online Building 功能,通过在线 CI/CD 流程直接生成应用安装包,无需本地安装 Rust 和 Node.js 环境。

对于初次打包,首次构建可能需要下载依赖,速度较慢;后续构建速度将显著提升。详细参数文档请参考官方 CLI Usage Guide 和 Advanced Usage Documentation。

查看原文 →github.com