GTK WhatsApp client.
  • Rust 90.5%
  • Meson 3.9%
  • SCSS 2.6%
  • Nix 1.8%
  • Shell 1.2%
Find a file
Andriel Ferreira 8330eec051 refactor: replace Rc<Cell<bool>> with Arc<AtomicBool> for thread-safe shared state
the changes in chat_list.rs and login.rs swap single-threaded Rc<Cell<bool>> for Arc<AtomicBool> with proper Acquire/Release ordering on all .load() and .store() calls, making the suppress_selection, valid_phone_number, and session_scan_expired flags safe to share across threads.
2026-03-01 04:44:10 -03:00
.github/workflows ci: remove dependabot 2026-02-21 01:59:52 -03:00
build-aux flatpak: update build files 2026-02-21 02:05:35 -03:00
data feat: implement read receipts and refine chat view UI 2026-02-28 20:51:14 -03:00
hooks Init with GTK Rust Template 2026-02-12 13:37:20 -03:00
po feat: implement auth 2026-02-19 00:03:54 -03:00
src refactor: replace Rc<Cell<bool>> with Arc<AtomicBool> for thread-safe shared state 2026-03-01 04:44:10 -03:00
.editorconfig refactor: rebrand to Papo, a GTK WhatsApp client 2026-02-12 17:23:01 -03:00
.envrc refactor: rebrand to Papo, a GTK WhatsApp client 2026-02-12 17:23:01 -03:00
.gitignore refactor: remove ChatMessageListItem wrapper and implement RelmListItem on ChatMessage directly 2026-02-28 20:51:14 -03:00
build.rs feat: add go-to-bottom button with crossfade animation 2026-02-28 20:51:15 -03:00
Cargo.lock feat: add persistence layer and restructure session architecture 2026-02-21 01:29:08 -03:00
Cargo.toml chore: migrate database paths to XDG user data directory (#1) 2026-02-23 00:13:58 -03:00
default.nix feat: implement auth 2026-02-19 00:03:54 -03:00
flake.lock feat: implement auth 2026-02-19 00:03:54 -03:00
flake.nix feat: add persistence layer and restructure session architecture 2026-02-21 01:29:08 -03:00
LICENSE refactor: rebrand to Papo, a GTK WhatsApp client 2026-02-12 17:23:01 -03:00
meson.build feat: implement auth 2026-02-19 00:03:54 -03:00
meson_options.txt Init with GTK Rust Template 2026-02-12 13:37:20 -03:00
README.md docs: update roadmap with refined items and new planned features 2026-02-27 00:04:06 -03:00
rust-toolchain.toml feat: add persistence layer and restructure session architecture 2026-02-21 01:29:08 -03:00
shell.nix feat: implement auth 2026-02-19 00:03:54 -03:00

Papo

Unofficial GTK client for WhatsApp, built with Rust. This project is in an early stage and under active development.

What does "Papo" mean?

"Papo" is Brazilian Portuguese slang for "chat" or "conversation." It is commonly used in the expression "bater um papo," which means to have a chat.

Install

Nix

nix build github:AmanoTeam/Papo
nix run github:AmanoTeam/Papo

Flatpak

flatpak-builder --install --user build build-aux/com.amanoteam.Papo.json

Build from source

Requires Rust nightly, GTK4 (>= 4.20), libadwaita (>= 1.8), and Meson.

meson setup build
meson compile -C build
meson install -C build

Roadmap

  • QR code login
  • Chat list
  • Message history
  • Bidirectional infinite scroll pagination
  • Go-to-bottom button
  • Read receipts
  • Local message storage (libSQL)
  • Send messages
  • Media messages (images, videos, documents)
  • Voice messages
  • Stickers and animated stickers
  • Contact/chat info panel
  • Notifications
  • History sync (after pairing)
  • Chat search
  • Chat filters (unread, favorites, groups, non-contact)
  • Chat functions (pin, mute, delete, archive)
  • Chat admin functions (ban, change info/settings)
  • Message search
  • Message reactions
  • Reply/quote messages
  • Database encryption
  • Online status indicators
  • Typing indicators
  • Profile pictures

Translations

The project uses gettext for internationalization. Brazilian Portuguese (pt_BR) is currently supported. Translation files are located in the po/ directory, and contributions for new languages are welcome.

Acknowledgements

  • relm4 — Idiomatic GUI framework for GTK4 in Rust
  • whatsapp-rust — Rust implementation of the WhatsApp Web API

Contributing

We accept pull requests from our Forjego instance and GitHub. Fork either repository, create a feature branch, and submit a pull request. Bug reports and feature requests are also welcome via the issue tracker.

License

Licensed under the Apache License 2.0. See the LICENSE file for details.

Author: Andriel Ferreira