Pitch: Criamos um cliente de WhatsApp em Rust, sem Electron, com tradução offline e integração com IA
Quem usa o WhatsApp Web diariamente provavelmente já se incomodou com alguma coisa: consumo de memória, limitações da interface, falta de atalhos ou funcionalidades que simplesmente não existem.
Eu e alguns amigos resolvemos criar nossa própria alternativa.
O resultado é o Zapive, um cliente desktop de WhatsApp desenvolvido em Rust, open source, que roda nativamente no computador, sem Electron, sem Chromium e sem precisar manter um navegador aberto.
GitHub: https://github.com/wilssola/zapive
Por que decidimos fazer isso?
A ideia surgiu da vontade de ter um WhatsApp para desktop que fosse realmente rápido, leve e, principalmente, que nos desse mais controle sobre a experiência.
Não queríamos simplesmente colocar o WhatsApp Web dentro de outra janela.
Queríamos construir um cliente de verdade, com interface própria, integração nativa com o sistema operacional e liberdade para implementar funcionalidades que sentimos falta no aplicativo oficial.
Para isso, utilizamos Rust com Slint na interface e whatsapp-rust para a comunicação com o protocolo do WhatsApp.
O resultado é uma aplicação que funciona como um dispositivo vinculado, assim como o WhatsApp Web, mas com implementação própria.
E o desempenho?
Esse foi um dos pontos em que mais trabalhamos.
Nos benchmarks que realizamos em uma máquina com Windows 11 e Ryzen 7 9800X3D, utilizando uma build de produção em modo de demonstração, obtivemos:
- 210 ms para abrir a primeira janela.
- 76,6 MB de RAM após 3 segundos da inicialização.
- 0% de CPU em repouso.
- Aproximadamente 140 a 180 MB de RAM em um cenário com cerca de 900 conversas carregadas.
Os testes são reproduzíveis e disponibilizamos a metodologia no próprio repositório.
Nosso objetivo é que o aplicativo continue responsivo mesmo para quem passa o dia inteiro com o WhatsApp aberto.
Mas não queríamos apenas fazer um WhatsApp mais leve
A parte mais interessante do projeto, pelo menos para mim, é a liberdade de criar funcionalidades que normalmente não temos no cliente oficial.
Algumas das que já implementamos:
1. Tradução de mensagens totalmente offline
É possível traduzir mensagens diretamente no aplicativo, incluindo tradução automática de determinados idiomas.
Utilizamos CTranslate2 com modelos Argos OPUS-MT. Depois de baixar o modelo, o processamento acontece localmente.
Ou seja, não precisamos enviar o conteúdo das mensagens para uma API externa de tradução.
2. Integração com agentes de IA via MCP
Implementamos um servidor MCP local, que permite conectar ferramentas como Claude e Cursor ao WhatsApp.
Com isso, um agente pode, mediante configuração e autorização, realizar operações como:
- Listar e pesquisar conversas.
- Ler mensagens.
- Consultar informações de contatos e grupos.
- Enviar mensagens.
- Marcar conversas como lidas.
- Reagir a mensagens.
Essa integração é opcional, vem desativada por padrão e utiliza autenticação por token.
3. Mais controle sobre privacidade
Adicionamos algumas opções interessantes:
- Desativar confirmação de leitura por padrão.
- Manter visíveis localmente mensagens que foram apagadas pelo remetente.
- Desfocar nomes, fotos, mensagens e mídias.
- Proteger o aplicativo com PIN.
- Armazenar histórico e mídias com criptografia AES-256-GCM.
4. Funcionalidades para quem usa WhatsApp o dia inteiro
Também implementamos recursos como:
- Reprodução de áudios em até 3x, preservando o tom da voz.
- Atalhos de teclado para navegar e gerenciar conversas.
- Suporte a até cinco contas.
- Temas claro e escuro, com visual translúcido ou opaco.
- Visualizador de PDFs e vídeos dentro do aplicativo.
- Enquetes, reações, mensagens favoritas e gerenciamento de conversas.
- Chamadas individuais de voz e vídeo.
- Notificações nativas.
E ainda temos várias ideias que queremos implementar.
Como funciona por baixo dos panos?
Para quem gosta da parte técnica, a arquitetura é composta principalmente por:
| Componente | Tecnologia |
|---|---|
| Linguagem | Rust |
| Interface | Slint |
| Protocolo WhatsApp | whatsapp-rust |
| Banco local | SQLite |
| Criptografia | AES-256-GCM |
| Tradução | CTranslate2 |
| Integração com IA | MCP |
| Runtime assíncrono | Tokio |
Uma decisão importante foi manter o aplicativo como um processo nativo, sem depender de um motor de navegador.
Também implementamos carregamento sob demanda das conversas para evitar manter todo o histórico na memória.
O projeto é open source!
Disponibilizamos o código sob licença MIT.
Atualmente temos builds para Windows, Linux e macOS, embora Windows seja a plataforma mais testada.
Repositório: https://github.com/wilssola/zapive
Releases: https://github.com/wilssola/zapive/releases
O projeto ainda está em desenvolvimento. Existem funcionalidades que não suportamos, e algumas partes precisam de mais testes e melhorias.
Também é importante deixar claro que o Zapive é um cliente independente, sem vínculo com a Meta ou o WhatsApp. Por utilizar uma implementação não oficial, existe risco de incompatibilidade com os termos da plataforma e de restrições à conta. Recomendamos utilizar uma conta secundária para testes.
Queremos feedback da comunidade
Estamos compartilhando o projeto porque acreditamos que ele pode ser útil para outras pessoas e porque queremos ouvir a opinião de quem desenvolve software.
Principalmente de quem trabalha com Rust, aplicações desktop, protocolos de comunicação e interfaces nativas.
Queria deixar três perguntas para vocês:
- O que mais incomoda vocês no WhatsApp Web atualmente?
- Que funcionalidade faria vocês considerarem utilizar um cliente alternativo?
- Para quem já desenvolveu aplicações desktop com Rust, que melhorias arquiteturais vocês sugeririam?
Se quiserem explorar o código, abrir issues ou contribuir, toda ajuda é bem-vinda.
E se acharem o projeto interessante, uma estrela no GitHub ajuda bastante a dar visibilidade!