SAMA
Chat server and messaging protocol built on uWebSockets, offered as an alternative to XMPP, with web and Flutter clients alongside it.

SAMA is a chat server and a messaging protocol written as a deliberate alternative to XMPP, which its authors call the only widely spread standard in this space. It arrives as a server plus working clients rather than a specification to implement yourself.
The server runs on Node.js with uWebSockets, keeps its data in MongoDB and uses Redis for cluster coordination. Nodes find each other through Redis records carrying each node's WebSocket address, establish links with a ping and pong handshake, and retry on a widening delay when a connection breaks. When a node vanishes for good, a surviving node clears the records it left behind, so user and device state does not go stale.
The API is documented one area at a time.
- Users: accounts, authentication and the calls around a user record.
- Conversations: creating and managing conversations between users.
- Messages: sending, delivering and retrieving message history.
- Activities: presence and status for connected devices.
- Address book: contact lists reconciled against server side users.
- Push notifications: delivery to devices that are not currently connected.
The server is GPL 3.0, and clients exist for the web and for Flutter in their own repositories. Local development, full deployment and end to end tests are documented on the project's docs site, and the whole stack can be exercised on a public cloud instance before anything is installed.
Stars
158Forks
15Last commit
14 days agoRepository age
4 yearsLicense
GPL-3.0Version
0.37.0Repository
SAMA-Communications/sama-server
Auto-fetched from GitHub .
Open source alternatives similar to SAMA:
Stars
Forks
Last commit
Stars
Forks
Last commit
Stars
Forks
Last commit