Skip to main content

🚀 OpenIM: An Open Source Instant Messaging SDK Solution

OpenIM consists of two main components: OpenIMSDK and OpenIMServer. Its main features are as follows:

đŸ“Ļ OpenIMSDK

  • Embedded directly into applications as a library file.

đŸ–Ĩī¸ OpenIMServer

  • Deployed as an independent server-side program.

đŸ“ĸ Note: OpenIMSDK does not integrate a UI interface, and OpenIMServer does not provide user registration and login functionality. This means it is not a complete IM product.

Relationship Diagram

📘 Detailed Explanation of OpenIMSDK

OpenIMSDK is an IM SDK designed for OpenIMServer, specifically created for embedding in client applications. Its main functions and technical features are as follows:

🌟 Key Features:​

  • đŸ“Ļ Local Storage
  • 🔔 Listener Callbacks
  • 🛡ī¸ API Encapsulation
  • 🌐 Connection Management

📚 Main Modules:​

  1. 🚀 Initialization and Login
  2. 👤 User Management
  3. đŸ‘Ģ Friend Management
  4. 🤖 Group Functions
  5. đŸ’Ŧ Session Handling

🔧 Technical Implementation:​

  • 🏗ī¸ Written in Golang
  • 🌉 Cross-platform compilation using Gomobile
  • 🕸ī¸ Web SDK implementation using wasm technology
  • 🌌 C interface export through cgo
  • 🌍 Covers almost all platforms and languages
Platform/LanguageSDK Resource LinkSDK DescriptionExample Resource LinkDescription
Golangopen-im-sdk-coreGolang version SDK, implemented using Gomobile/wasm/cgo
iOSopen-im-sdk-iosiOS version SDKopen-im-ios-demoiOS example
Androidopen-im-sdk-androidAndroid version SDKopen-im-android-demoAndroid example
Flutteropen-im-sdk-flutterFlutter version SDKopen-im-flutter-demoFlutter example
uni-appopen-im-sdk-uniappuni-app version SDKopen-im-uniapp-demouni-app example
JS SDKopen-im-sdk-web-wasmJS SDK versionopen-im-pc-web-demoPC web example
React Nativeopen-im-sdk-reactnativeReact Native SDKopen-im-reactnative-demoReact Native example

🔍 Detailed Explanation of OpenIMServer​

OpenIMServer has the following features:

  • 🧩 Composed of multiple modules, such as gateway and multiple rpc services.
  • 🌐 Microservice architecture, supporting cluster mode.
  • 🚀 Various deployment methods, such as source code, Kubernetes, or Docker deployment.

🔗 OpenIMServer Repository Link

🌐 REST API​

  • OpenIMServer provides REST APIs for business systems, enabling more functionalities like creating groups and sending push messages through backend interfaces.

📞 Callback​

  • OpenIMServer offers callback capabilities to extend more business forms. Callbacks refer to OpenIMServer sending requests to business servers before or after certain events, like before or after sending a message.