/Pake

๐Ÿคฑ๐Ÿป Turn any webpage into a desktop app with Rust. ๐Ÿคฑ๐Ÿป ๅพˆ็ฎ€ๅ•็š„็”จ Rust ๆ‰“ๅŒ…็ฝ‘้กต็”Ÿๆˆๅพˆๅฐ็š„ๆกŒ้ข App

Primary LanguageRustMIT LicenseMIT

Pake

Turn any webpage into a desktop app with Rust with ease.

twitter telegram GitHub downloads GitHub commit GitHub closed issues
Pake supports Mac, Windows, and Linux. Check out README for Popular Packages, Command-Line Packaging, and Customized Development information. Feel free to share your suggestions in Discussions.

Features

  • ๐ŸŽ Nearly 20 times smaller than an Electron package (around 5M!)
  • ๐Ÿš€ With Rust Tauri, Pake is much more lightweight and faster than JS-based frameworks.
  • ๐Ÿ“ฆ Battery-included package โ€” shortcut pass-through, immersive windows, and minimalist customization.
  • ๐Ÿ‘ป Pake is just a simple tool โ€” replace the old bundle approach with Rust (though PWA is good enough).

Popular Packages

WeRead Mac Windows Linux Twitter Mac Windows Linux
ChatGPT Mac Windows Linux LiZhi Mac Windows Linux
YouTube Mac Windows Linux XiaoHongShu Mac Windows Linux
ProgramMusic Mac Windows Linux CodeRunner Mac Windows Linux
Flomo Mac Windows Linux Loop Mac Windows Linux
๐Ÿ‚ You can download more applications (such as YuQue / Reference / Qwerty) from Releases. Click here to expand the shortcuts reference!
Mac Windows/Linux Function
โŒ˜ + [ Ctrl + โ† Return to the previous page
โŒ˜ + ] Ctrl + โ†’ Go to the next page
โŒ˜ + โ†‘ Ctrl + โ†‘ Auto scroll to top of page
โŒ˜ + โ†“ Ctrl + โ†“ Auto scroll to bottom of page
โŒ˜ + r Ctrl + r Refresh Page
โŒ˜ + w Ctrl + w Hide window, not quite
โŒ˜ + - Ctrl + - Zoom out the page
โŒ˜ + + Ctrl + + Zoom in the page
โŒ˜ + = Ctrl + = Zoom in the Page
โŒ˜ + 0 Ctrl + 0 Reset the page zoom

In addition, double-click the title bar to switch to full-screen mode. For Mac users, you can also use the gesture to go to the previous or next page and drag the title bar to move the window.

Before starting

  1. For beginners: Play with Popular Packages to find out Pake's capabilities, or try to pack your application with GitHub Actions. Don't hesitate to reach for assistance at Discussion!
  2. For developers: โ€œCommand-Line Packagingโ€ supports macOS fully. For Windows/Linux users, it requires some tinkering. Configure your environment before getting started.
  3. For hackers: For people who are good at both front-end development and Rust, how about customizing your apps' function more with the following Customized Development?

Command-Line Packaging

Pake

Pake provides a command line tool, making the flow of package customization quicker and easier. See documentation for more information.

# Install with npm
npm install -g pake-cli

# Command usage
pake url [OPTIONS]...

# Feel free to play with Pake! It might take a while to prepare the environment the first time you launch Pake.
pake https://weekly.tw93.fun --name Weekly --transparent

If you are new to the command line, you can compile packages online with GitHub Actions. See the Tutorial for more information.

Development

Prepare your environment before starting. Make sure you have Rust >=1.63 and Node >=16 (e.g., 16.18.1) installed on your computer. For installation guidance, see Tauri documentation.

If you are unfamiliar with these, it is better to try out the above tool to pack with one click.

# Install Dependencies
npm i

# Local development [Right-click to open debug mode.]
npm run dev

# Pack application
npm run build

Advanced Usage

  1. You can refer to the codebase structure before working on Pake, which will help you much in development.
  2. Modify the url and productName fields in the pake.json file under the src-tauri directory, as well as the icon and identifier fields in the tauri.xxx.conf.json file. You can select a icon from the icons directory or download one from macOSicons to match your product needs.
  3. For configurations on window properties, you can modify the pake.json file to change the value of width, height, fullscreen (or not), resizable (or not) of the windows property. To adapt to the immersive header on Mac, change transparent to true, look for the Header element, and add the padding-top property.
  4. For advanced usages such as style rewriting, advertisement removal, JS injection, container message communication, and user-defined shortcut keys, see Advanced Usage of Pake.

Developer

Pake's development can not be without these Hackers. They contributed a lot of capabilities for Pake. Also, welcome to follow them! โค๏ธ

tw93
Tw93
Tlntin
Tlntin
pan93412
Pan93412
wanghanzhen
Volare
liby
Bryan Lee
essesoul
Essesoul
m1911star
Horus
Pake-Actions
Pake Actions
AielloChan
Aiello
QingZ11
Steam
exposir
ๅญŸไธ–ๅš
2nthony
2nthony
ACGNnsj
Null
nekomeowww
Ayaka Neko
turkyden
Dengju Deng
Fechin
Fechin
princemaple
Po Chen
houhoz
Hyzhao
liusishan
Liusishan
piaoyidage
Ranger

Support

  1. I have two cats, TangYuan and Coke. If you think Pake delights your life, you can feed them some canned food ๐Ÿฅฉ.
  2. If you like Pake, you can star it on GitHub. Also, welcome to recommend Pake to your friends.
  3. You can follow my Twitter to get the latest news of Pake or join our Telegram chat group.
  4. I hope that you enjoy playing with it. Let us know if you find a website that would be great for a Mac App!