Open Source Feature Details
1. What the Open Source Edition Includes
Core Components
| Component | License | Positioning | Description |
|---|---|---|---|
| OpenIMClientSDK | AGPL-3.0 | Client SDK | Responsible for client-side communication capabilities such as messages, conversations, groups, and friends, and needs to be integrated into your own application |
| OpenIMServer | Apache-2.0 | IM core server | Responsible for core instant messaging links, message synchronization, REST APIs, Webhook capabilities, and more |
| ChatServer | Apache-2.0 | Business extension server | Responsible for business extension capabilities such as registration, login, and APP management; if you already have your own account system, you can integrate it as needed or skip deployment |
| Client Demo / Sample UI | AGPL-3.0 | SDK integration example | Provides sample code to demonstrate how to integrate OpenIMClientSDK, and does not represent a complete production-ready client |
Extended Components
| Component | License | Positioning | Description |
|---|---|---|---|
| Pure JS SDK | ARR (closed source) | Pure JavaScript client SDK | Generally used for mini program development |
| Web Client | ARR (closed source, free to use) | Complete end-user product interface | Ready to use out of the box |
| Admin Frontend | ARR (closed source, free to use) | Backend page used by APP Administrators | If you need management capabilities, you can also build your own frontend based on the APP Administrator APIs |
2. Open Source Capabilities of OpenIMClientSDK + OpenIMServer
This section focuses on the core capabilities already provided by the open-source edition of OpenIMClientSDK and OpenIMServer.
1. Friends and Relationships
- Supports finding, requesting, adding, and deleting friends.
- Supports accepting and rejecting friend requests.
- Supports friend remarks.
- Supports settings for whether friend requests are allowed.
- Friend lists and friend profiles support real-time synchronization.
2. Blocklist
- Supports restricting messages and audio/video calls.
- The blocklist synchronizes in real time.
- Supports adding and removing blocked users.
3. Groups
- Supports creating and dissolving groups.
- Supports join requests, invitations, leaving groups, and removing group members.
- Supports real-time notifications and synchronization for group names, avatars, and profile changes.
- Supports join verification settings.
- Supports group ownership transfer.
- Supports settings that prevent viewing other group members' profiles or adding them as contacts.
- Supports appointing and removing group administrators.
- Supports searching group members and setting member-specific group profiles.
- Supports muting everyone or muting designated group members.
- Supports publishing group announcements.
4. Messages
- Supports text, image, video, emoji, file, voice, contact card, location, custom, and group announcement messages.
- Supports offline messages, roaming messages, multi-device messages, and message history.
- Supports forwarding a single selected message and merged forwarding for multiple selected messages.
- Supports deleting, clearing, copying, and recalling messages.
- Supports editing messages after recall.
- Supports group @mentions, typing indicators in one-to-one chats, burn after reading, do-not-disturb for new messages, clearing chat history, allowing new members to view group history, and new message alerts.
- Supports local message search.
5. Conversations
- Supports pinned conversations.
- Supports deleting conversations.
- Supports searching local conversations.
- Supports conversation read state.
- Supports conversation do-not-disturb.
6. Server-Side Open Capabilities
- Provides REST APIs for authentication management, user management, relationship management, group management, conversation management, and message management.
- Provides Webhook capabilities such as group callbacks, message callbacks, push callbacks, relationship callbacks, and user callbacks.
7. Capacity and Deployment
- Supports up to 3,000 contacts.
- Supports groups with up to 100,000 members.
- Supports second-level synchronization.
- Supports cluster deployment from source code.
8. Multi-Device Login Policy
- Supports no forced logout across platforms.
- Supports one logged-in device per platform.
- Supports one logged-in device each on PC, mobile, tablet, web, and mini program.
9. Audio and Video Capabilities
- Supports basic one-to-one audio/video call capabilities.
- Group audio/video calls and video conferencing are not open source.
- When integrating one-to-one audio/video calls, business details such as unanswered timeout and cancellation need to be implemented by developers themselves.
3. How to Understand the Open Source Scope of OpenIMSDK
- If you only need core IM capabilities, focus on integrating OpenIMClientSDK and deploying OpenIMServer.
- If you also need business extension capabilities such as registration, login, and APP management, deploy ChatServer as needed.
- If you need a complete end-user product interface or an APP Administrator backend page, you need to implement it yourself based on the SDK, REST APIs, and your business requirements.