11

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:

ComponenteTecnologia
LinguagemRust
InterfaceSlint
Protocolo WhatsAppwhatsapp-rust
Banco localSQLite
CriptografiaAES-256-GCM
TraduçãoCTranslate2
Integração com IAMCP
Runtime assíncronoTokio

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:

  1. O que mais incomoda vocês no WhatsApp Web atualmente?
  2. Que funcionalidade faria vocês considerarem utilizar um cliente alternativo?
  3. 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!

https://github.com/wilssola/zapive

Carregando publicação patrocinada...
1

Testei e não consegui sair da primeira tela pelo simples motivo de que a interface RUST não está esposta para meu leitor de tela, (NVDA) para acessibilidade para cegos e deficientes visuais.
Seria incrível se isso estivesse acessível para cegos

1

Meus 2 cents,

Parabens pela iniciativa !

Tenho para mim que a META nao sabe o que fazer com o Whatsapp, basta dar uma olhada nos app oficiais deles (que sao uma bosta)

Enfim, apesar de usar API nao oficial, vou dar uma olhada (com um numero para testes)

Repositorio devidamente starreado e forkeado, obrigado por compartilhar !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS