#whatsapp #api-bindings #api-client #whatsappweb

whatsappweb-eta

WhatsApp Web (reverse-engineered) API client, eta's fork thereof

4 releases (2 breaking)

0.5.0-pre1 Aug 9, 2019
0.4.0 Jul 3, 2019
0.3.2 Jul 3, 2019
0.3.1 Jul 3, 2019

#2 in #whatsapp

MIT license

155KB
3.5K SLoC

whatsappweb-rs (eta's fork)

Crates.io badge Docs Build Status

What is this?

This is a fork of whatsappweb-rs by Christoph Walcher (@wiomoc). It's used by sms-irc, and is actively maintained in conjuction with that project. I didn't write most of this code - and most of the reverse-engineering work for the protocol was done by sigalor, under the aegis of the whatsapp-web-reveng project.

What have you changed?

  • Various stability fixes (doesn't error out as easily when WhatsApp sends us weird stuff)
  • Made it suitable for publication to crates.io
  • Dependency updates (to work with modern Rust crates)
  • New error handling (using failure instead of error-chain)
  • Small bug fixes here and there
  • More data exposed (e.g. videos, unimplemented messages, captions)

Features

(taken from the original README verbatim)

  • send/receive text-, image-, audiomessages
  • create/modify groups
  • get userinfo (status, presence, profilepic)
  • get contacts, chats
  • send/receive message acknowledge
  • receive changes from app e.g. (un-)pin, (un-)mute, delete chat
  • relogin without scanning qrcode
  • query older messages
  • reconnect on connection loss

TODO

  • Error messages need to be less stringly-typed
  • Message deletions / revocations
  • Broadcast lists
  • Documentation!
  • Code cleanup

This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by WhatsApp or any of its affiliates or subsidiaries. This is an independent and unofficial software. Use at your own risk.

Dependencies

~27–40MB
~578K SLoC