Go to file
skiffer-git 148a2493bb
Fix bug redis address (#2063)
* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* redis address port error

* change go proxy

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
2024-03-09 13:52:07 +08:00
.github feat: Integrate Comprehensive E2E Testing for GoChat (#1906) 2024-03-04 04:12:14 +00:00
CHANGELOG cicd: bump League Patch (#2025) 2024-03-08 02:28:48 +00:00
assets feat: Enhance Script Details and Add MacOS Compatibility with Documentation Updates (#1794) 2024-01-21 02:49:08 +00:00
build Delete build/images/openim-rpc-encryption directory (#1842) 2024-01-31 06:16:19 +00:00
cmd cicd: bump League Patch (#2004) 2024-03-06 07:58:05 +00:00
config Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044) 2024-03-08 17:21:50 +08:00
deployments Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044) 2024-03-08 17:21:50 +08:00
docs feat: Introduce Language-Specific Comment Detection Tool and Standardize Log Filename Convention (#1992) 2024-03-04 09:30:17 +00:00
internal feat: add local cache for high frequency reads (#2036) 2024-03-08 16:30:47 +08:00
pkg feat: add local cache for high frequency reads (#2036) 2024-03-08 16:30:47 +08:00
scripts Fix bug delete data conversion (#2059) 2024-03-09 12:56:54 +08:00
test cicd: bump League Patch (#1998) 2024-03-05 02:51:55 +00:00
tools Fix bug redis address (#2063) 2024-03-09 13:52:07 +08:00
.dockerignore Ⓜ️feat: openim docker fix (#1502) 2023-11-30 10:25:38 +00:00
.gitignore feat(main): 🚀 Database Name Correction and S3 Module Int32 Overflow Fix with Go Routine Integration for Automated Checks and Script Optimization (#1799) 2024-01-26 02:02:53 +00:00
.golangci.yml Update readme and golangci lint (#1999) 2024-03-05 07:27:26 +00:00
CHANGELOG.md feat: add link file 2023-07-10 18:19:25 +08:00
CODE_OF_CONDUCT.md Feat/add test scripts (#1341) 2023-11-05 10:36:37 +00:00
CONTRIBUTING-zh_CN.md feat: add architecture layers (#1860) 2024-02-02 11:47:16 +00:00
CONTRIBUTING.md feat: add architecture layers (#1860) 2024-02-02 11:47:16 +00:00
Dockerfile Fix bug redis address (#2063) 2024-03-09 13:52:07 +08:00
LICENSE v3 - main to cut out 2023-06-29 22:35:31 +08:00
Makefile feat: Integrate Comprehensive E2E Testing for GoChat (#1906) 2024-03-04 04:12:14 +00:00
README.md Update readme and golangci lint (#1999) 2024-03-05 07:27:26 +00:00
README_zh_CN.md docs: renmae README files about other languages (#1915) 2024-02-18 09:23:22 +00:00
docker-compose-1.yml feat: add docker-compse-1.yml and cancel the openim-admin annotate in docker-compose.yml (#1881) 2024-02-18 10:42:56 +00:00
docker-compose.yml feat: add docker-compse-1.yml and cancel the openim-admin annotate in docker-compose.yml (#1881) 2024-02-18 10:42:56 +00:00
go.mod feat: add local cache for high frequency reads (#2036) 2024-03-08 16:30:47 +08:00
go.sum Bug: component check (#2056) 2024-03-09 00:41:54 +08:00
go.work Fix bug delete data conversion (#2059) 2024-03-09 12:56:54 +08:00
install.sh fix: reconstruct the script of 'make start' 'make stop' and 'make check' (#1953) 2024-02-27 09:58:54 +00:00

README.md

👥 Community

Ⓜ️ About OpenIM

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.

App-OpenIM Relationship

🚀 About OpenIMSDK

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

  • 🌟 Main Features:

    • 📦 Local storage
    • 🔔 Listener callbacks
    • 🛡️ API wrapping
    • 🌐 Connection management
  • 📚 Main Modules:

    1. 🚀 Initialization and Login
    2. 👤 User Management
    3. 👫 Friend Management
    4. 🤖 Group Functions
    5. 💬 Conversation Handling

It is built using Golang and supports cross-platform deployment, ensuring a consistent access experience across all platforms.

👉 Explore GO SDK

🌐 About OpenIMServer

  • 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.

Enhanced Business Functionality:

  • 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.

👉 Learn more

🏗️ Overall Architecture

Delve into the heart of Open-IM-Server's functionality with our architecture diagram.

Overall Architecture

🚀 Quick Start

We support many platforms. Here are the addresses for quick experience on the web side

👉 OpenIM online web demo

🤲 To facilitate user experience, we offer various deployment solutions. You can choose your deployment method from the list below:

🛠️ To Start Developing OpenIM

Open in Dev Container

Open in GitHub Codespaces

OpenIM Our goal is to build a top-level open source community. We have a set of standards, in the Community repository.

If you'd like to contribute to this Open-IM-Server repository, please read our contributor documentation.

Before you start, please make sure your changes are in demand. The best for that is to create a new discussion OR Slack Communication, or if you find an issue, report it first.

📆 Community Meetings

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.

Our conference is in the OpenIM Slack 🎯, then you can search the Open-IM-Server pipeline to join

We take notes of each biweekly meeting in GitHub discussions, Our historical meeting notes, as well as replays of the meetings are available at Google Docs 📑.

👀 Who Are Using OpenIM

Check out our user case studies page for a list of the project users. Don't hesitate to leave a 📝comment and share your use case.

📄 License

OpenIM is licensed under the Apache 2.0 license. See LICENSE for the full license text.

The OpenIM logo, including its variations and animated versions, displayed in this repository OpenIM under the assets/logo and assets/logo-gif directories, are protected by copyright laws.

🔮 Thanks to our contributors!