2023-07-12 12:28:18 +08:00
<p align="center">
2023-10-30 10:16:37 +08:00
<a href="https://openim.io">
2023-07-12 12:28:18 +08:00
<img src="./assets/logo-gif/openim-logo.gif" width="60%" height="30%"/>
</a>
</p>
2023-07-21 21:20:23 +08:00
2023-11-10 19:37:25 +08:00
<div align="center">
2023-06-29 22:35:31 +08:00
2023-11-10 19:37:25 +08:00
[](https://github.com/openimsdk/open-im-server/stargazers)
[](https://github.com/openimsdk/open-im-server/network/members)
[](https://app.codecov.io/gh/openimsdk/open-im-server)
[](https://goreportcard.com/report/github.com/openimsdk/open-im-server)
[](https://pkg.go.dev/github.com/openimsdk/open-im-server/v3)
[](https://github.com/openimsdk/open-im-server/blob/main/LICENSE)
[](https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q)
[](https://www.bestpractices.dev/projects/8045)
[](https://github.com/openimsdk/open-im-server/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22)
[](https://golang.org/)
2024-02-02 19:47:16 +08:00
<p align="center">
<a href="./README.md">Englist</a> ·
2024-02-07 21:52:38 +08:00
<a href="./README_zh_CN.md">中文</a> ·
<a href="./docs/readme/README_uk.md">Українська</a> ·
<a href="./docs/readme/README_cs.md">Česky</a> ·
<a href="./docs/readme/README_hu.md">Magyar</a> ·
<a href="./docs/readme/README_es.md">Español</a> ·
<a href="./docs/readme/README_fa.md">فارسی</a> ·
<a href="./docs/readme/README_fr.md">Français</a> ·
<a href="./docs/readme/README_de.md">Deutsch</a> ·
<a href="./docs/readme/README_pl.md">Polski</a> ·
<a href="./docs/readme/README_id.md">Indonesian</a> ·
<a href="./docs/readme/README_fi.md">Suomi</a> ·
<a href="./docs/readme/README_ml.md">മലയാളം</a> ·
<a href="./docs/readme/README_ja.md">日本語</a> ·
<a href="./docs/readme/README_nl.md">Nederlands</a> ·
<a href="./docs/readme/README_it.md">Italiano</a> ·
<a href="./docs/readme/README_ru.md">Русский</a> ·
<a href="./docs/readme/README_pt_BR.md">Português (Brasil)</a> ·
<a href="./docs/readme/README_eo.md">Esperanto</a> ·
<a href="./docs/readme/README_ko.md">한국어</a> ·
<a href="./docs/readme/README_ar.md">العربي</a> ·
<a href="./docs/readme/README_vi.md">Tiếng Việt</a> ·
<a href="./docs/readme/README_da.md">Dansk</a> ·
<a href="./docs/readme/README_el.md">Ελληνικά</a> ·
<a href="./docs/readme/README_tr.md">Türkçe</a>
2024-02-02 19:47:16 +08:00
</p>
2023-05-10 23:17:13 +08:00
2023-11-10 19:37:25 +08:00
</div>
2023-05-10 23:17:13 +08:00
2023-05-13 18:03:50 +08:00
</p>
2024-02-20 20:18:43 +08:00
## :busts_in_silhouette: Community
2024-02-25 23:01:22 +08:00
+ 💬 [Follow our Twitter account ](https://twitter.com/founder_im63606 )
+ 👫 [Join our Reddit ](https://www.reddit.com/r/OpenIMessaging )
2024-02-20 20:18:43 +08:00
+ 🚀 [Join our Slack community ](https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q )
+ :eyes: [Join our wechat (微信群) ](https://openim-1253691595.cos.ap-nanjing.myqcloud.com/WechatIMG20.jpeg )
2024-02-25 23:01:22 +08:00
+ 📚 [OpenIM Community ](https://github.com/OpenIMSDK/community )
+ 💕 [OpenIM Interest Group ](https://github.com/Openim-sigs )
2024-02-20 20:18:43 +08:00
2023-10-08 10:16:42 +08:00
## Ⓜ️ About OpenIM
2023-06-29 22:35:31 +08:00
2024-01-08 21:40:04 +08:00
OpenIM is a service platform specifically designed for integrating chat, audio-video calls, notifications, and AI chatbots into applications. It provides a range of powerful APIs and Webhooks, enabling developers to easily incorporate these interactive features into their applications. OpenIM is not a standalone chat application, but rather serves as a platform to support other applications in achieving rich communication functionalities. The following diagram illustrates the interaction between AppServer, AppClient, OpenIMServer, and OpenIMSDK to explain in detail.
2023-08-06 13:37:16 +08:00
2023-10-08 10:16:42 +08:00

2023-08-06 15:39:06 +08:00
2023-10-08 10:16:42 +08:00
## 🚀 About OpenIMSDK
2023-08-06 15:39:06 +08:00
2024-01-08 21:40:04 +08:00
**OpenIMSDK ** is an IM SDK designed for **OpenIMServer ** , created specifically for embedding in client applications. Its main features and modules are as follows:
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
+ 🌟 Main Features:
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
- 📦 Local storage
- 🔔 Listener callbacks
- 🛡️ API wrapping
- 🌐 Connection management
2023-08-06 13:37:16 +08:00
2024-01-26 10:02:53 +08:00
+ 📚 Main Modules:
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
1. 🚀 Initialization and Login
2. 👤 User Management
3. 👫 Friend Management
4. 🤖 Group Functions
5. 💬 Conversation Handling
2023-08-06 15:08:11 +08:00
2024-01-08 21:40:04 +08:00
It is built using Golang and supports cross-platform deployment, ensuring a consistent access experience across all platforms.
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
👉 * * [Explore GO SDK ](https://github.com/openimsdk/openim-sdk-core )**
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
## 🌐 About OpenIMServer
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
+ **OpenIMServer ** has the following characteristics:
- 🌐 Microservice architecture: Supports cluster mode, including a gateway and multiple rpc services.
- 🚀 Diverse deployment methods: Supports deployment via source code, Kubernetes, or Docker.
- Support for massive user base: Super large groups with hundreds of thousands of users, tens of millions of users, and billions of messages.
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
### Enhanced Business Functionality:
2023-08-06 13:37:16 +08:00
2024-01-08 21:40:04 +08:00
+ **REST API ** : OpenIMServer offers REST APIs for business systems, aimed at empowering businesses with more functionalities, such as creating groups and sending push messages through backend interfaces.
+ **Webhooks ** : OpenIMServer provides callback capabilities to extend more business forms. A callback means that OpenIMServer sends a request to the business server before or after a certain event, like callbacks before or after sending a message.
2023-08-06 15:39:06 +08:00
2024-01-08 21:40:04 +08:00
👉 * * [Learn more ](https://docs.openim.io/guides/introduction/product )**
2023-08-06 13:37:16 +08:00
2024-02-02 19:47:16 +08:00
## :building_construction: Overall Architecture
Delve into the heart of Open-IM-Server's functionality with our architecture diagram.

2023-08-06 13:37:16 +08:00
## :rocket: Quick Start
2024-01-26 10:02:53 +08:00
We support many platforms. Here are the addresses for quick experience on the web side:
👉 * * [OpenIM online web demo ](https://web-enterprise.rentsoft.cn/ )**
2024-01-08 21:40:04 +08:00
🤲 To facilitate user experience, we offer various deployment solutions. You can choose your deployment method from the list below:
2023-08-06 13:37:16 +08:00
2023-10-30 21:26:11 +08:00
+ * * [Source Code Deployment Guide ](https://docs.openim.io/guides/gettingStarted/imSourceCodeDeployment )**
+ * * [Docker Deployment Guide ](https://docs.openim.io/guides/gettingStarted/dockerCompose )**
2024-01-08 21:40:04 +08:00
+ * * [Kubernetes Deployment Guide ](https://docs.openim.io/guides/gettingStarted/k8s-deployment )**
2024-01-26 10:02:53 +08:00
+ * * [Mac Developer Deployment Guide ](https://docs.openim.io/guides/gettingstarted/mac-deployment-guide )**
2023-05-11 23:35:26 +08:00
2024-01-12 18:04:06 +08:00
## :hammer_and_wrench: To Start Developing OpenIM
2023-04-28 13:21:33 +08:00
2024-03-03 21:15:27 +08:00
[](https://codespaces.new/openimsdk/open-im-server)
2023-11-10 19:37:25 +08:00
[](https://vscode.dev/github/openimsdk/open-im-server)
2023-08-06 15:08:11 +08:00
OpenIM Our goal is to build a top-level open source community. We have a set of standards, in the [Community repository ](https://github.com/OpenIMSDK/community ).
2023-09-08 15:20:30 +08:00
If you'd like to contribute to this Open-IM-Server repository, please read our [contributor documentation ](https://github.com/openimsdk/open-im-server/blob/main/CONTRIBUTING.md ).
2023-04-28 13:21:33 +08:00
2023-09-08 15:20:30 +08:00
Before you start, please make sure your changes are in demand. The best for that is to create a [new discussion ](https://github.com/openimsdk/open-im-server/discussions/new/choose ) OR [Slack Communication ](https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q ), or if you find an issue, [report it ](https://github.com/openimsdk/open-im-server/issues/new/choose ) first.
2023-05-11 23:35:26 +08:00
2023-11-10 19:37:25 +08:00
- [OpenIM API Reference ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/api.md )
- [OpenIM Bash Logging ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/bash-log.md )
- [OpenIM CI/CD Actions ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/cicd-actions.md )
- [OpenIM Code Conventions ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/code-conventions.md )
- [OpenIM Commit Guidelines ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/commit.md )
- [OpenIM Development Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/development.md )
- [OpenIM Directory Structure ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/directory.md )
- [OpenIM Environment Setup ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/environment.md )
- [OpenIM Error Code Reference ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/error-code.md )
- [OpenIM Git Workflow ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/git-workflow.md )
- [OpenIM Git Cherry Pick Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/gitcherry-pick.md )
- [OpenIM GitHub Workflow ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/github-workflow.md )
- [OpenIM Go Code Standards ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/go-code.md )
- [OpenIM Image Guidelines ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/images.md )
- [OpenIM Initial Configuration ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/init-config.md )
- [OpenIM Docker Installation Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/install-docker.md )
- [OpenIM OpenIM Linux System Installation ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/install-openim-linux-system.md )
- [OpenIM Linux Development Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/linux-development.md )
- [OpenIM Local Actions Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/local-actions.md )
- [OpenIM Logging Conventions ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/logging.md )
- [OpenIM Offline Deployment ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/offline-deployment.md )
- [OpenIM Protoc Tools ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/protoc-tools.md )
- [OpenIM Testing Guide ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/test.md )
- [OpenIM Utility Go ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/util-go.md )
- [OpenIM Makefile Utilities ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/util-makefile.md )
- [OpenIM Script Utilities ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/util-scripts.md )
- [OpenIM Versioning ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/version.md )
2023-11-16 18:02:30 +08:00
- [Manage backend and monitor deployment ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/prometheus-grafana.md )
2024-01-12 18:04:06 +08:00
- [Mac Developer Deployment Guide for OpenIM ](https://github.com/openimsdk/open-im-server/tree/main/docs/contrib/mac-developer-deployment-guide.md )
2023-08-06 13:37:16 +08:00
## :calendar: Community Meetings
2023-05-11 23:35:26 +08:00
2023-08-06 15:08:11 +08:00
We want anyone to get involved in our community and contributing code, we offer gifts and rewards, and we welcome you to join us every Thursday night.
2023-08-06 13:37:16 +08:00
2023-09-05 16:31:40 +08:00
Our conference is in the [OpenIM Slack ](https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q ) 🎯, then you can search the Open-IM-Server pipeline to join
2023-08-06 13:37:16 +08:00
2023-09-08 15:20:30 +08:00
We take notes of each [biweekly meeting ](https://github.com/orgs/OpenIMSDK/discussions/categories/meeting ) in [GitHub discussions ](https://github.com/openimsdk/open-im-server/discussions/categories/meeting ), Our historical meeting notes, as well as replays of the meetings are available at [Google Docs :bookmark_tabs: ](https://docs.google.com/document/d/1nx8MDpuG74NASx081JcCpxPgDITNTpIIos0DS6Vr9GU/edit?usp=sharing ).
2023-08-06 13:37:16 +08:00
2024-01-12 18:04:06 +08:00
## :eyes: Who Are Using OpenIM
2023-05-10 23:40:41 +08:00
2023-09-08 15:20:30 +08:00
Check out our [user case studies ](https://github.com/OpenIMSDK/community/blob/main/ADOPTERS.md ) page for a list of the project users. Don't hesitate to leave a [📝comment ](https://github.com/openimsdk/open-im-server/issues/379 ) and share your use case.
2023-04-28 13:29:44 +08:00
2023-08-06 13:37:16 +08:00
## :page_facing_up: License
2023-09-08 15:20:30 +08:00
OpenIM is licensed under the Apache 2.0 license. See [LICENSE ](https://github.com/openimsdk/open-im-server/tree/main/LICENSE ) for the full license text.
2023-08-06 15:08:11 +08:00
2023-09-08 15:20:30 +08:00
The OpenIM logo, including its variations and animated versions, displayed in this repository [OpenIM ](https://github.com/openimsdk/open-im-server ) under the [assets/logo ](./assets/logo ) and [assets/logo-gif ](assets/logo-gif ) directories, are protected by copyright laws.
2023-08-06 13:37:16 +08:00
2023-08-06 15:08:11 +08:00
## 🔮 Thanks to our contributors!
2023-06-29 22:35:31 +08:00
2023-09-08 15:20:30 +08:00
<a href="https://github.com/openimsdk/open-im-server/graphs/contributors">
<img src="https://contrib.rocks/image?repo=openimsdk/open-im-server" />
2023-08-06 15:08:11 +08:00
</a>