# rexxzyid/elaina-baileys architecture

> Architecture diagram of the GitHub repository rexxzyid/elaina-baileys, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rexxzyid/elaina-baileys
- Repository: https://github.com/rexxzyid/elaina-baileys

## Overview

Elaina Baileys is an ESM WhatsApp Multi-Device client library with an integrated interactive-message builder. An application creates a socket, connects and authenticates, then exchanges messages and performs chat, group, channel, and related operations; incoming events return to the application. The graph preserves documented calling, media, sync, persistence, and VoIP capabilities. Source excerpts are partial, so wiring between unsampled socket subsystems is shown only where the factory or README supports it.

Main entry points: [`src/Socket/socket.js`](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/socket.js) (Socket Operations), [`src/Socket/messages-recv.js`](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-recv.js) (Message Receiving), [`src/Socket/index.js`](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/index.js) (Socket Factory), [`src/Socket/messages-send.js`](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-send.js) (Message Sending)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Public API"]
  node_entry["Package API<br/>[index.js]"]
  node_socket["Socket Factory<br/>[index.js]"]
end

subgraph group_connection["Connection Protocol"]
  node_socket_impl["Socket Operations<br/>[socket.js]"]
  node_websocket["WebSocket Client<br/>[websocket.js]"]
  node_binary["Binary Protocol<br/>[index.js]"]
  node_proto["WA Protocol Types<br/>[index.js]"]
  node_signal["Signal Encryption<br/>[libsignal.js]"]
  node_usync["User Sync<br/>[USyncQuery.js]"]
end

subgraph group_messaging["Messaging Features"]
  node_messages["Message Utilities<br/>[messages.js]"]
  node_send["Message Sending<br/>[messages-send.js]"]
  node_receive["Message Receiving<br/>[messages-recv.js]"]
  node_builder["Interactive Builder<br/>[index.js]"]
  node_retry["Retry Management"]
end

subgraph group_state["Identity State"]
  node_auth["Auth Adapters<br/>[useNekoDBAuth.js]"]
  node_store[("In-Memory Store")]
end

subgraph group_extensions["Extended Services"]
  node_voip["Voice Video Calls<br/>[index.js]"]
  node_voip_engine["VoIP Engine<br/>[wasm-engine.js]"]
  node_groups["Group Operations<br/>[groups.js]"]
  node_channels["Channel Operations<br/>[newsletter.js]"]
  node_communities["Community Operations<br/>[communities.js]"]
end

node_app(("Application"))
node_wa(("WhatsApp Web"))
node_db[("NekoDB")]

node_app -->|"imports"| node_entry
node_entry -->|"exports"| node_socket
node_app -->|"creates socket"| node_socket
node_socket -->|"builds on"| node_socket_impl
node_socket_impl -->|"connects through"| node_websocket
node_websocket -->|"exchanges frames"| node_wa
node_socket_impl -->|"encodes nodes"| node_binary
node_binary -->|"uses types"| node_proto
node_socket_impl -->|"exposes sending"| node_send
node_socket_impl -->|"exposes receiving"| node_receive
node_app -->|"sends content"| node_send
node_send -->|"prepares content"| node_messages
node_builder -->|"prepares media"| node_messages
node_app -->|"builds rich messages"| node_builder
node_receive -->|"emits events"| node_app
node_socket_impl -->|"uses encryption"| node_signal
node_receive -->|"manages retries"| node_retry
node_socket_impl -->|"queries user sync"| node_usync
node_app -->|"loads credentials"| node_auth
node_auth -.->|"reads and writes"| node_db
node_app -->|"stores chat state"| node_store
node_app -->|"starts calls"| node_voip
node_voip -->|"uses engine"| node_voip_engine
node_app -->|"manages groups"| node_groups
node_app -->|"manages channels"| node_channels
node_app -->|"manages communities"| node_communities
node_groups -->|"sends operations"| node_wa
node_channels -->|"sends operations"| node_wa
node_communities -->|"sends operations"| node_wa

click node_entry "https://github.com/rexxzyid/elaina-baileys/blob/main/src/index.js"
click node_socket "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/index.js"
click node_socket_impl "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/socket.js"
click node_websocket "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/Client/websocket.js"
click node_binary "https://github.com/rexxzyid/elaina-baileys/blob/main/src/WABinary/index.js"
click node_proto "https://github.com/rexxzyid/elaina-baileys/blob/main/WAProto/index.js"
click node_messages "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/messages.js"
click node_send "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-send.js"
click node_receive "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-recv.js"
click node_builder "https://github.com/rexxzyid/elaina-baileys/blob/main/src/MessageBuilder/index.js"
click node_signal "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Signal/libsignal.js"
click node_retry "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/message-retry-manager.js"
click node_usync "https://github.com/rexxzyid/elaina-baileys/blob/main/src/WAUSync/USyncQuery.js"
click node_auth "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/useNekoDBAuth.js"
click node_store "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Store/make-in-memory-store.js"
click node_voip "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Voip/index.js"
click node_voip_engine "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Voip/wasm-engine.js"
click node_groups "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/groups.js"
click node_channels "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/newsletter.js"
click node_communities "https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/communities.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_socket toneBlue
class node_socket_impl,node_websocket,node_binary,node_proto,node_signal,node_usync,node_db toneAmber
class node_messages,node_send,node_receive,node_builder,node_retry toneMint
class node_auth,node_store toneRose
class node_voip,node_voip_engine,node_groups,node_channels,node_communities,node_app,node_wa toneIndigo
```

## Components

### Public API

- [Package API](https://github.com/rexxzyid/elaina-baileys/blob/main/src/index.js): `src/index.js`
- [Socket Factory](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/index.js): `src/Socket/index.js`

### Connection Protocol

- [Socket Operations](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/socket.js): `src/Socket/socket.js`
- [WebSocket Client](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/Client/websocket.js): `src/Socket/Client/websocket.js`
- [Binary Protocol](https://github.com/rexxzyid/elaina-baileys/blob/main/src/WABinary/index.js): `src/WABinary/index.js`
- [WA Protocol Types](https://github.com/rexxzyid/elaina-baileys/blob/main/WAProto/index.js): `WAProto/index.js`
- [Signal Encryption](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Signal/libsignal.js): `src/Signal/libsignal.js`
- [User Sync](https://github.com/rexxzyid/elaina-baileys/blob/main/src/WAUSync/USyncQuery.js): `src/WAUSync/USyncQuery.js`

### Messaging Features

- [Message Utilities](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/messages.js): `src/Utils/messages.js`
- [Message Sending](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-send.js): `src/Socket/messages-send.js`
- [Message Receiving](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/messages-recv.js): `src/Socket/messages-recv.js`
- [Interactive Builder](https://github.com/rexxzyid/elaina-baileys/blob/main/src/MessageBuilder/index.js): `src/MessageBuilder/index.js`
- [Retry Management](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/message-retry-manager.js): `src/Utils/message-retry-manager.js`

### Identity State

- [Auth Adapters](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Utils/useNekoDBAuth.js): `src/Utils/useNekoDBAuth.js`
- [In-Memory Store](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Store/make-in-memory-store.js): `src/Store/make-in-memory-store.js`

### Extended Services

- [Voice Video Calls](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Voip/index.js): `src/Voip/index.js`
- [VoIP Engine](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Voip/wasm-engine.js): `src/Voip/wasm-engine.js`
- [Group Operations](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/groups.js): `src/Socket/groups.js`
- [Channel Operations](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/newsletter.js): `src/Socket/newsletter.js`
- [Community Operations](https://github.com/rexxzyid/elaina-baileys/blob/main/src/Socket/communities.js): `src/Socket/communities.js`

### Other components

- **Application**
- **WhatsApp Web**
- **NekoDB**

## Connections

- Application → Package API: imports
- Package API → Socket Factory: exports
- Application → Socket Factory: creates socket
- Socket Factory → Socket Operations: builds on
- Socket Operations → WebSocket Client: connects through
- WebSocket Client → WhatsApp Web: exchanges frames
- Socket Operations → Binary Protocol: encodes nodes
- Binary Protocol → WA Protocol Types: uses types
- Socket Operations → Message Sending: exposes sending
- Socket Operations → Message Receiving: exposes receiving
- Application → Message Sending: sends content
- Message Sending → Message Utilities: prepares content
- Interactive Builder → Message Utilities: prepares media
- Application → Interactive Builder: builds rich messages
- Message Receiving → Application: emits events
- Socket Operations → Signal Encryption: uses encryption
- Message Receiving → Retry Management: manages retries
- Socket Operations → User Sync: queries user sync
- Application → Auth Adapters: loads credentials
- Auth Adapters → NekoDB: reads and writes
- Application → In-Memory Store: stores chat state
- Application → Voice Video Calls: starts calls
- Voice Video Calls → VoIP Engine: uses engine
- Application → Group Operations: manages groups
- Application → Channel Operations: manages channels
- Application → Community Operations: manages communities
- Group Operations → WhatsApp Web: sends operations
- Channel Operations → WhatsApp Web: sends operations
- Community Operations → WhatsApp Web: sends operations
