A favicon of SAMA

SAMA

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

Open Source Alternative to:

Screenshot of SAMA websiteVisit SAMA

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.

Share:
Details:

Auto-fetched from GitHub .

Ad

 

 
 
 
 

Open source alternatives similar to SAMA:

 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit


 

 
 
  • Stars


  • Forks


  • Last commit


SAMA: Open Source Alternative to Twilio, Stream and Pusher – Unvendored