A Tauri-based lightweight WhatsApp desktop client
翻訳待ち
Loading the full README.
Read the full README ↗An unofficial native-webview wrapper for the official WhatsApp Web client, named WhatheRust so it isn't confused with Meta's own WhatsApp desktop app. It uses the operating system's webview instead of bundling Electron and Chromium.
Tauri uses WebView2, WKWebView, or WebKitGTK provided by the operating system rather than shipping Chromium and Node.js, resulting in a smaller binary and lower memory use. WhatsApp has no official third-party API; reusing its official web client avoids reimplementing the protocol and the associated account-ban risk.
<app local data dir>/webview (for example, ~/.local/share/com.wemilabs.whatherust/webview on Linux).apps/
├── desktop/
│ ├── src/ Static fallback required by Tauri
│ └── src-tauri/
│ ├── Cargo.toml Rust package and dependencies
│ ├── build.rs Tauri build integration
│ ├── tauri.conf.json Window, frontend, bundle, and updater configuration
│ ├── capabilities/whatsapp-web.json
│ ├── icons/ App and tray icons; SVG files are the sources
│ └── src/ Webview, tray, and plugin setup
└── web/ SvelteKit website
.github/workflows/ CI and release workflows
package.json Root scripts and package manager
pnpm-workspace.yaml Workspace package list
turbo.json Monorepo task configuration
cargo install tauri-cli --version "^2" --locked.libwebkit2gtk-4.1-dev, libayatana-appindicator3-dev, librsvg2-dev, libxdo-dev, and libssl-dev (see the Tauri Linux prerequisites).Install the workspace dependencies from the repository root:
pnpm install
Run the desktop wrapper or website from the repository root:
pnpm dev:desktop
pnpm dev:web
Build the desktop bundles from the repository root:
pnpm --filter @whatherust/desktop tauri build
Alternatively, run cargo tauri dev from apps/desktop/src-tauri. Bundles are written under
apps/desktop/src-tauri/target/release/bundle/.
Release builds check GitHub Releases for updates on launch. Updates are signed with the updater
key; configure the TAURI_SIGNING_PRIVATE_KEY repository secret for release builds. Push a vX.Y.Z
tag to create a draft release, which is published after all platform builds succeed.
The app version is taken from the tag, so use vX.Y.Z with valid SemVer.
The SvelteKit website lives in apps/web. Run it with pnpm dev:web; an optional GITHUB_TOKEN
environment variable raises the GitHub API rate limit without needing any scopes. The site is
deployed on Vercel.
The icons are generated from the SVG sources in apps/desktop/src-tauri/icons/:
cd apps/desktop/src-tauri
rsvg-convert -w 1024 -h 1024 icons/icon.svg -o /tmp/icon.png
cargo tauri icon /tmp/icon.png -o icons
rsvg-convert -w 44 -h 44 icons/tray-template.svg -o icons/tray-template.png
This project is licensed under the MIT License.