Bumps the rust-dependencies group in /src-tauri with 11 updates: | Package | From | To | | --- | --- | --- | | [shadowsocks](https://github.com/shadowsocks/shadowsocks-rust) | `1.24.0` | `1.25.0` | | [const-oid](https://github.com/RustCrypto/formats) | `0.9.6` | `0.10.2` | | [ctr](https://github.com/RustCrypto/block-modes) | `0.9.2` | `0.10.1` | | [ghash](https://github.com/RustCrypto/universal-hashes) | `0.5.1` | `0.6.0` | | [hkdf](https://github.com/RustCrypto/KDFs) | `0.12.4` | `0.13.0` | | [md-5](https://github.com/RustCrypto/hashes) | `0.10.6` | `0.11.0` | | [polyval](https://github.com/RustCrypto/universal-hashes) | `0.6.2` | `0.7.3` | | [sealed](https://github.com/jmg-duarte/sealed-rs) | `0.6.0` | `0.7.0` | | [shadowsocks-crypto](https://github.com/shadowsocks/shadowsocks-crypto) | `0.6.2` | `0.8.0` | | spin | `0.10.1` | `0.12.3` | | [untrusted](https://github.com/briansmith/untrusted) | `0.9.0` | `0.7.1` | Updates `shadowsocks` from 1.24.0 to 1.25.0 - [Release notes](https://github.com/shadowsocks/shadowsocks-rust/releases) - [Commits](https://github.com/shadowsocks/shadowsocks-rust/compare/v1.24.0...v1.25.0) Updates `const-oid` from 0.9.6 to 0.10.2 - [Commits](https://github.com/RustCrypto/formats/compare/const-oid/v0.9.6...const-oid/v0.10.2) Updates `ctr` from 0.9.2 to 0.10.1 - [Commits](https://github.com/RustCrypto/block-modes/compare/ctr-v0.9.2...ctr-v0.10.1) Updates `ghash` from 0.5.1 to 0.6.0 - [Commits](https://github.com/RustCrypto/universal-hashes/compare/ghash-v0.5.1...ghash-v0.6.0) Updates `hkdf` from 0.12.4 to 0.13.0 - [Commits](https://github.com/RustCrypto/KDFs/compare/hkdf-v0.12.4...hkdf-v0.13.0) Updates `md-5` from 0.10.6 to 0.11.0 - [Commits](https://github.com/RustCrypto/hashes/compare/md-5-v0.10.6...md2-v0.11.0) Updates `polyval` from 0.6.2 to 0.7.3 - [Commits](https://github.com/RustCrypto/universal-hashes/compare/polyval-v0.6.2...polyval-v0.7.3) Updates `sealed` from 0.6.0 to 0.7.0 - [Commits](https://github.com/jmg-duarte/sealed-rs/commits) Updates `shadowsocks-crypto` from 0.6.2 to 0.8.0 - [Release notes](https://github.com/shadowsocks/shadowsocks-crypto/releases) - [Commits](https://github.com/shadowsocks/shadowsocks-crypto/compare/v0.6.2...v0.8.0) Updates `spin` from 0.10.1 to 0.12.3 Updates `untrusted` from 0.9.0 to 0.7.1 - [Commits](https://github.com/briansmith/untrusted/commits) --- updated-dependencies: - dependency-name: shadowsocks dependency-version: 1.25.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: const-oid dependency-version: 0.10.2 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: ctr dependency-version: 0.10.1 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: ghash dependency-version: 0.6.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: hkdf dependency-version: 0.13.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: md-5 dependency-version: 0.11.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: polyval dependency-version: 0.7.3 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: sealed dependency-version: 0.7.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: shadowsocks-crypto dependency-version: 0.8.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: spin dependency-version: 0.12.3 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: untrusted dependency-version: 0.7.1 dependency-type: indirect update-type: version-update:semver-minor dependency-group: rust-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Features
- Unlimited browser profiles: each fully isolated with its own fingerprint, cookies, extensions, and data
- Anti-detect Chromium engine: powered by Wayfern, a privacy-focused Chromium fork whose fingerprint spoofing is not detected by Cloudflare, reCaptcha v3, or other browser fingerprinting and anti-bot services
- DNS AdBlocker: block ads, trackers, and other unwanted content with per-profile DNS blocking
- Proxy support: HTTP, HTTPS, SOCKS4, SOCKS5 per profile, with dynamic proxy URLs
- VPN support: WireGuard configs per profile
- Local API & MCP: REST API and Model Context Protocol server for integration with Claude, automation tools, and custom workflows
- Profile groups: organize profiles and apply bulk settings
- Import profiles: migrate from Chrome, Edge, Brave, or other Chromium browsers
- Cookie & extension management: import/export cookies, manage extensions per profile
- Default browser: set Donut as your default browser and choose which profile opens each link
- Cloud sync: sync profiles, proxies, and groups across devices (self-hostable)
- E2E encryption: optional end-to-end encrypted sync with a password only you know
- Zero telemetry: no tracking or device fingerprinting
Install
macOS
| Apple Silicon | Intel | |
|---|---|---|
| DMG | Download | Download |
Or install via Homebrew:
brew install --cask donut
Windows
Download Windows Installer (x64) · Portable (x64)
Linux
| Format | x86_64 | ARM64 |
|---|---|---|
| deb | Download | Download |
| rpm | Download | Download |
| AppImage | Download | Download |
Or install via package manager:
curl -fsSL https://donutbrowser.com/install.sh | sh
Troubleshooting AppImage
If the AppImage segfaults on launch, install libfuse2 (sudo apt install libfuse2 / yay -S libfuse2 / sudo dnf install fuse-libs), or bypass FUSE entirely:
APPIMAGE_EXTRACT_AND_RUN=1 ./Donut.Browser_x.x.x_amd64.AppImage
If that gives an EGL display error, add WEBKIT_DISABLE_DMABUF_RENDERER=1 or GDK_BACKEND=x11 to the command above. If issues persist, the .deb and .rpm packages are more reliable.
Flatpak and Snap
The Linux Packages workflow builds an x86_64 Flatpak bundle and Snap from the .deb. Download donut-flatpak-x86_64 or donut-snap-amd64 from a successful run, unzip it, and install it:
flatpak install --user Donut.flatpak
sudo snap install --dangerous donutbrowser_*.snap
The Snap leaves the microphone, the camera and the keyring (used by profile import) disconnected until you run sudo snap connect donutbrowser:audio-record, donutbrowser:camera or donutbrowser:password-manager-service. The Flatpak cannot change the default browser, so choose Donut in your system settings instead.
Nix
nix run github:zhom/donutbrowser#release-start
Self-Hosting Sync
Run your own sync server to sync profiles, proxies, and groups across devices for free. See the Self-Hosting Donut Sync guide for Docker-based setup instructions.
Contributing
Donut Browser is built by the people who use it, and plenty of the most useful help involves no code at all.
- Tell other people about Donut. Word of mouth is how most users find the project, so talking about it is a real contribution.
- Report bugs and request features in GitHub Issues.
- Answer questions in GitHub Discussions.
- Fix and improve translations in
src/i18n/locales. - Write code. Start with CONTRIBUTING.md.
- Star the repo so more people see it.
Star History
Contributors
Contact
For urgent questions or security vulnerability reports, email contact@donutbrowser.com.
License
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
