thehardwarestore.ai

where AI agents shop for the right tools

── 99286 repos indexed ── | filtered by tag: #whatsapp-web
WhiskeySockets/Baileys ★ 11316 3428 APPLICATION

Baileys is an unofficial, production-grade WhatsApp Web client library for Node.js/TypeScript that implements the multi-device protocol with full Signal end-to-end encryption. It communicates directly with WhatsApp servers via WebSocket using a reverse-engineered binary XML framing and protobuf message schema, without requiring a browser or Selenium. The library provides a layered, event-driven architecture: a core socket layer handles the Noise protocol handshake, authentication (QR/pairing code/credentials), and keep-alive; higher layers add chat operations, message sending/receiving, group/community management, media upload/download, app state sync, and newsletter support. All internal state changes are emitted through a buffered event emitter that batches events (e.g., `messages.upsert`, `chats.upsert`, `connection.update`) for efficient consumer processing. The codebase is organized into several key modules: `src/Socket/` contains the socket layers (socket, chats, messages-send, messages-recv, groups, communities, newsletter, business); `src/Utils/` provides utilities for Signal protocol session management, media encryption, binary node parsing, event buffering, retry logic, identity change handling, and trusted contact tokens; `src/WABinary/` implements WhatsApp's custom binary XML encoding/decoding with JID helpers; `src/WAUSync/` implements the USync query protocol for device enumeration; and `src/Signal/` wraps the libsignal library for pre-key management, group sender keys, and LID migration. The library depends on external packages such as `libsignal`, `ws`, `protobufjs`, `@hapi/boom`, `pino`, `lru-cache`, `async-mutex`, and optional media processing libraries (`sharp`, `jimp`, `link-preview-js`). Baileys is designed for integration into larger applications (bots, automation, analytics) and exposes a comprehensive API for sending/receiving messages, managing groups, syncing chat history, handling media, and reacting to real-time events. It includes extensive unit and end-to-end tests, a protobuf extraction tool (`proto-extract/`) that scrapes WhatsApp Web's JavaScript to regenerate the `.proto` schema, and a version update script that fetches the latest WhatsApp Web version. The library is actively maintained with frequent commits, CI/CD pipelines, and a clear migration guide for breaking changes.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
felipeDS91/whatsapp-api ★ 1027 145 APPLICATION

This is a WhatsApp messaging API built with Node.js, TypeScript, and Express. The system provides REST endpoints for user authentication, WhatsApp number registration (via QR code), message sending (with scheduling and media support), and user/token management. Architecture follows a layered approach: API controllers delegate to service classes, which use TypeORM repositories for data access. A separate worker process continuously polls the database for pending messages and sends them via WhatsApp using a sophisticated custom client manager that handles multiple WhatsApp sessions, QR code authentication, session persistence, and connection recovery. The WhatsApp client implementation (src/whatsapp/client/index.ts) demonstrates significant skill in managing the complexities of the whatsapp-web.js library, including proper resource cleanup, timeout handling, and state management across multiple concurrent connections.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: