OpenIM
An open-source instant-messaging SDK and server for developers to build messaging into their own applications, rather than a standalone chat app.
OpenIM is an open-source instant-messaging solution built specifically for developers to integrate into their own applications, unlike standalone chat apps such as Telegram, Signal or Rocket.Chat. It is made up of OpenIMSDK, a client SDK for integrating instant messaging into an application, and OpenIMServer, the backend server it talks to, together providing message sending and receiving, user management and group management.
OpenIMSDK supports local storage, listener callbacks, API wrapping and connection management, along with modules for initialization and login, user and friend management, group functions and session handling, and is built in Go for cross-platform deployment. OpenIMServer is built as a microservices architecture that supports cluster deployment through a gateway and multiple RPC services, can be installed from source, on Kubernetes, or with Docker, and is designed to support large-scale deployments with hundreds of thousands or millions of users and billions of messages.
A REST API extends business systems with actions such as group creation and message pushing, and webhooks let a business server react to events before or after they happen.