For messaging sdks, the first results are openimsdk/open-im-server (Open-IM-Server is a messaging backend and chat server providing distributed real-time messaging, cross-platform support, message persistence, push notifications, and media sharing to build communication features into applications), jackjiang2011/mobileimsdk (MobileIMSDK is an instant messaging framework providing real-time delivery, cross-platform support, message persistence, and reliable networking libraries specifically designed for building communication features into applications) and permissionlesstech/bitchat (Bitchat is a decentralized offline messaging app and protocol written in Swift that provides secure, end-to-end encrypted communication without central servers, making it a relevant tool for embedded messaging functionality despite lacking some typical cloud SDK features). robbiehanson/xmppframework and conversejs/converse.js round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Compare open-source messaging SDKs on GitHub to build real-time chat and communication features into your software applications.
Open-IM-Server is an instant messaging server and cross-platform messaging backend designed for real-time text and media communication. It provides a distributed chat architecture that coordinates user sessions and group communications across multiple server nodes to support millions of concurrent users. The system features a scalable message distribution model that utilizes asynchronous message pipelines and distributed queueing to maintain reliability during traffic spikes. It employs multi-level data caching across local memory and distributed stores to reduce latency and uses a document-b
Open-IM-Server is a messaging backend and chat server providing distributed real-time messaging, cross-platform support, message persistence, push notifications, and media sharing to build communication features into applications.
MobileIMSDK is an open-source instant messaging framework that provides reliable real-time message delivery across iOS, Android, Java, HarmonyOS, and web platforms. At its core, it offers a unified communication layer that transparently supports UDP, TCP, and WebSocket transports, enabling developers to send and receive messages without managing protocol differences or connection state. The framework includes an automatic reconnection engine that detects network outages and restores connections without manual intervention, with built-in message retransmission and deduplication to guarantee exa
MobileIMSDK is an instant messaging framework providing real-time delivery, cross-platform support, message persistence, and reliable networking libraries specifically designed for building communication features into applications.
Bitchat is a decentralized messaging protocol designed for secure, private communication across both local and wide-area networks. It functions as an encrypted offline messenger that enables direct data exchange between devices without requiring centralized servers or persistent internet connectivity. By utilizing end-to-end encryption, the platform ensures that message content remains confidential and protected from unauthorized access throughout the entire transport process. The project distinguishes itself through a hybrid connectivity layer that dynamically routes messages between short-r
Bitchat is a decentralized offline messaging app and protocol written in Swift that provides secure, end-to-end encrypted communication without central servers, making it a relevant tool for embedded messaging functionality despite lacking some typical cloud SDK features.
XMPPFramework is an Objective-C communication framework and networking library used to build instant messaging applications for Mac and iOS. It provides a programmatic foundation for implementing XMPP clients, managing real-time message exchange, and processing structured XML streams between network endpoints. The framework features a modular plugin architecture and extension system that allows for the integration of custom communication capabilities and protocol extensions into the data stream. It distinguishes itself with specialized support for OMEMO end-to-end encryption and a state-based
XMPPFramework is an Objective-C communication library that provides robust real-time messaging, presence tracking, and end-to-end encryption for building chat features in Apple ecosystem applications, though its scope is platform-specific rather than cross-platform.
Converse.js is an embeddable, self-hosted XMPP chat client that runs entirely in the browser. It communicates with XMPP servers using standard XML stanzas over WebSocket or BOSH transports, and provides end-to-end encryption through the OMEMO protocol with double ratchet algorithm and X3DH key exchange. The client is built on a plugin-based architecture that allows extending core functionality at runtime without modifying the client itself, and uses a DOM-based rendering approach with an event-driven message bus for internal coordination. The client manages message history through XEP-0313 Me
Converse.js is a browser-based XMPP chat client that provides embeddable real-time messaging, end-to-end encryption via OMEMO, and message persistence, making it a viable library for adding communication features to web applications.
This project is a messaging SDK for Android applications, providing the core infrastructure for real-time communication using Kotlin and Jetpack Compose. It offers a suite of modular, declarative UI components and a backend-connected API to manage user authentication, persistent socket connections, and data synchronization. The SDK is distinguished by its offline-first architecture, which utilizes local database persistence to cache conversation history and queue user actions for synchronization once network connectivity is restored. Developers can customize the messaging experience through a
This project provides a robust messaging SDK tailored specifically for Android development, offering real-time communication, local persistence, and UI components, though it lacks cross-platform support beyond its target mobile ecosystem.
This project is a cross-platform messaging SDK and client development library used to build custom Telegram applications. It functions as a comprehensive framework that manages network encryption, local data storage, and API communication, providing a C-compatible JSON interface that allows integration with any programming language. The library distinguishes itself by providing a full database manager for encrypted local caching and synchronized state, alongside a dedicated bot framework for creating interactive bots with business account integration. It enables the implementation of speciali
This project is a cross-platform messaging SDK and client library designed to build custom communication applications, offering local data storage and encryption features suitable for chat integration.
This project provides a cross-platform messaging interface toolkit designed for building real-time chat applications and generative AI agents. It offers a collection of pre-built components that render consistent messaging experiences across mobile and web environments, handling the complexities of state management and data synchronization between the user interface and backend services. The library distinguishes itself through a highly modular architecture that allows developers to inject custom logic and UI overrides via builder functions. This approach enables the creation of tailored mess
This project provides a cross-platform messaging UI component library for Flutter, making it a great building block for real-time chat applications even though you will need to wire up your own backend services for persistence and notifications.
libsignal is a cryptographic library that implements the Signal Protocol, providing the core primitives for end-to-end encrypted messaging with forward secrecy and deniable authentication. It includes the Double Ratchet algorithm for iteratively deriving fresh encryption keys per message, and the X3DH key agreement protocol for establishing shared secrets between parties asynchronously. A session state machine maintains cryptographic state across message exchanges, supporting recovery and out-of-order delivery. The library extends beyond basic messaging encryption with capabilities such as ze
libsignal provides the underlying cryptographic primitives for end-to-end encryption, but it is a security library rather than a complete chat messaging SDK with features like transport, presence, and persistence.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| openimsdk/open-im-server | 16.5K | Go | Apache-2.0 | |
| jackjiang2011/mobileimsdk | 6.1K | Objective-C | Apache-2.0 | |
| 26K |
| Swift |
| Unlicense |
| robbiehanson/xmppframework | 5.9K | Objective-C | NOASSERTION |
| conversejs/converse.js | 3.3K | JavaScript | MPL-2.0 |
| getstream/stream-chat-android | 1.6K | Kotlin | NOASSERTION |
| tdlib/td | 8.5K | C++ | bsl-1.0 |
| flyerhq/flutter_chat_ui | 2.3K | Dart | Apache-2.0 |
| signalapp/libsignal | 5.8K | Rust | AGPL-3.0 |