{"id":13481639,"url":"https://github.com/WuKongIM/WuKongIM","last_synced_at":"2025-03-27T12:31:12.706Z","repository":{"id":162924546,"uuid":"638054601","full_name":"WuKongIM/WuKongIM","owner":"WuKongIM","description":"More than just IM 不只是即时通讯( IM )","archived":false,"fork":false,"pushed_at":"2025-03-20T07:16:12.000Z","size":76153,"stargazers_count":4082,"open_issues_count":33,"forks_count":499,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-03-27T07:01:32.856Z","etag":null,"topics":["chat","customerservice","im","message"],"latest_commit_sha":null,"homepage":"https://githubim.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WuKongIM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-09T01:46:51.000Z","updated_at":"2025-03-26T16:21:00.000Z","dependencies_parsed_at":"2023-07-01T20:45:58.698Z","dependency_job_id":"b92993b1-1289-47eb-9a6d-3ae1d9b29a2b","html_url":"https://github.com/WuKongIM/WuKongIM","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WuKongIM%2FWuKongIM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WuKongIM%2FWuKongIM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WuKongIM%2FWuKongIM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WuKongIM%2FWuKongIM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WuKongIM","download_url":"https://codeload.github.com/WuKongIM/WuKongIM/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245844880,"owners_count":20681795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","customerservice","im","message"],"created_at":"2024-07-31T17:00:53.595Z","updated_at":"2025-03-27T12:31:12.689Z","avatar_url":"https://github.com/WuKongIM.png","language":"Go","funding_links":[],"categories":["Go","AI 机器学习"],"sub_categories":[],"readme":"##  悟空IM（让信息传递更简单）\n\n10(2015)年积累，沉淀出来的高性能通用通讯服务，支持即时通讯，站内/系统消息，消息中台，物联网通讯，音视频信令，直播弹幕，客服系统，AI通讯，即时社区等场景。\n\n`本项目需要在go1.20.0或以上环境编译`\n\n`不再支持Windows系统`\n\n\n\n分布式IM重要特性： 故障自动转移，去中心化设计，节点之间数据互备，支持集群快速自动扩容，代理节点机制\n\n涉及到的知识点：  自定义协议， 分布式Raft（魔改pull模式），多组Raft（魔改pull模式），关系数据库底层原理，分布式数据库设计， Reactors设计，独创分布式多层领导机制 等等\n\n\n[English](./README_EN.md)\n\n\u003cp align=\"center\"\u003e\n\u003cimg align=\"left\" height=\"110\" src=\"./docs/logo.png\"\u003e\n\u003cul\u003e\n\u003c!-- \u003cli\u003e\u003cstrong\u003eQQ群\u003c/strong\u003e: \u003ca href=\"#\"\u003e750224611\u003c/a\u003e\u003c/li\u003e --\u003e\n\u003c!-- \u003cli\u003e\u003cstrong\u003e微信\u003c/strong\u003e: \u003ca href=\"#\"\u003ewukongimgo（备注进群）\u003c/a\u003e\u003c/li\u003e --\u003e\n\u003cli\u003e\u003cstrong\u003e官网\u003c/strong\u003e: https://githubim.com\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e通讯协议\u003c/strong\u003e: \u003ca href=\"https://githubim.com/server/advance/proto.html\"\u003eWuKongIM协议\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e提问\u003c/strong\u003e: https://github.com/WuKongIM/WuKongIM/issues\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e文档\u003c/strong\u003e: https://githubim.com\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n[![](https://img.shields.io/github/license/WuKongIM/WuKongIM?color=yellow\u0026style=flat-square)](./LICENSE)\n[![](https://img.shields.io/badge/go-%3E%3D1.20-30dff3?style=flat-square\u0026logo=go)](https://github.com/WuKongIM/WuKongIM)\n[![](https://img.shields.io/badge/go%20report-A+-brightgreen.svg?style=flat)](https://goreportcard.com/report/github.com/WuKongIM/WuKongIM)\n\u003ca href=\"https://join.slack.com/t/wukongim/shared_invite/zt-22o7we8on-2iKNUmgigB9ERdF9XUivmw\"\u003e\u003cimg src=\"https://img.shields.io/badge/Slack-99%2B-blueviolet?logo=slack\u0026amp;logoColor=white\"\u003e\u003c/a\u003e\n\n架构图\n--------\n\n![架构图](./docs/architecture/cluster.png)\n\n\n视频演示\n--------\n\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth style=\"text-align: center;\"\u003e故障转移演示\u003c/th\u003e\n      \u003cth style=\"text-align: center;\"\u003eAI演示\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd style=\"text-align: center;\"\u003e\n        \u003cimg src=\"./docs/architecture/cluster-failover.webp\" alt=\"故障转移\"\u003e\n      \u003c/td\u003e\n      \u003ctd style=\"text-align: center;\"\u003e\n         \u003cimg src=\"./docs/video/stream.webp\" alt=\"AI+流消息\"\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n\n\n演示\n--------\n\n**聊天Demo**\n\nweb聊天场景演示： http://imdemo.githubim.com\n\n后端监控演示： http://monitor.githubim.com/web\n\n测试报告： https://githubim.com/server/advance/stressSingleReport.html\n\n\u003c!-- 愿景\n--------\n\n深知开发一个即时通讯系统的复杂性，我们希望通过开源的方式，让更多的开发者可以快速的搭建自己的即时通讯系统，让信息传递更简单。 --\u003e\n\n\n吹个牛\n--------\n\n开源中唯一`去中心化`的分布式IM\n\n开源中唯一单机发送并发超`20万`的IM\n\n开源中唯一内置自研分布式存储的IM\n\n开源中唯一不依赖任何中间件的分布式IM\n\n特点\n--------\n\n🎦**独特性**\n\n群成员无上限，轻松支持10万人群聊，消息可永久存储。\n\n📚**资源消耗低**\n\n自研二进制协议，心跳包只有1字节，省流量，省电量，传输更迅速。\n\n🔐**安全性**\n\n消息通道和消息内容全程加密，防中间人攻击和窜改消息内容，服务端数据实时备份，数据不丢失。\n\n\n🚀 **性能**\n\n基于pebble kv数据库，研发了针对于IM这种服务的特有分布式数据库，省了其他数据库为了通用性而带来的性能损耗， 因为存储快，所以消息快。\n\n🔥**高可用**\n\n通过魔改raft分布式协议，实现了自动容灾，一台机器宕机，另一台机器自动接管，对外无感知。\n\n去中心化，无单点，无中心节点，每个节点都是独立且平等的，都可以提供服务。\n\n扩容方便，只需增加机器，不需要停机，不需要迁移数据，自动按策略分配数据。\n\n0⃣️ **易用性**\n\n不依赖任何第三方中间件，部署简单，一条命令即可启动。\n\n采用频道订阅发布的设计理念，容易理解，容易上手。\n\n与Redis一样简单，Kafka一样高性能，MySQL一样可靠\n\n🌲**技术支持**\n\n官方团队提供技术支持，提供技术文档，提供技术交流群，提供issue反馈。    \n\n\n功能特性\n---------------\n\n\n- [x] 支持自定义消息\n- [x] 支持订阅/发布者模式\n- [x] 支持个人/群聊/客服/社区资讯频道\n- [x] 支持频道黑名单\n- [x] 支持频道白名单\n- [x] 支持消息永久漫游，换设备登录，消息不丢失\n- [x] 支持在线状态，支持同账号多设备同时在线\n- [x] 支持多设备消息实时同步\n- [x] 支持用户最近会话列表服务端维护\n- [x] 支持指令消息\n- [x] 支持离线指令接口\n- [x] 支持Webhook，轻松对接自己的业务系统\n- [x] 支持Datasource，无缝对接自己的业务系统数据源\n- [x] 支持Websocket连接\n- [x] 支持TLS 1.3\n- [x] 支持Prometheus监控\n- [x] 监控系统开发\n- [x] 支持流式消息，类似chatgpt的结果输出流\n- [x] 支持分布式\n    - [x] 去中心化设计，任意一个节点宕机，集群自动修复\n    - [x] 集群节点之间数据互备，任意一个节点损害，不影响数据完整性\n    - [x] 支持集群快速自动扩容\n    \u003c!-- - [ ] 支持长连接CDN，解决跨国跨地区长连接不稳定问题 --\u003e\n\n\n快速部署体验\n---------------\n\n```shell\n\ngit clone https://github.com/WuKongIM/WuKongIM.git\n\ncd WuKongIM/docker/cluster\n\nsudo docker compose up -d\n\n```\n\n后台管理系统： http://127.0.0.1:15300/web\n\n聊天演示地址：http://127.0.0.1:15172/login\n\n\n\n源码开发\n---------------\n\n### 单机\n\n```shell\n\n\ngo run main.go\n\n(或 go run main.go --config config/wk.yaml)\n\n```\n\n### 分布式\n    \n```yaml\n\n# 启动第一个节点\ngo run main.go --config  ./exampleconfig/cluster1.yaml\n\n# 启动第二个节点\ngo run main.go --config  ./exampleconfig/cluster2.yaml\n\n# 启动第三个节点\ngo run main.go --config  ./exampleconfig/cluster3.yaml\n\n```\n\n\n### 访问\n\n后台管理系统： http://127.0.0.1:5300/web\n\n聊天演示地址：http://127.0.0.1:5172/chatdemo\n\n\n正式部署\n---------------\n\n请参考[部署文档](https://githubim.com/install)\n\n\n\n\n配套SDK源码和Demo\n---------------\n\n\n\n| 项目名 | Github地址 | Example | 文档 | 说明 |\n| ---- | ---------- | --------- | ---- |  ---- |\n|   WuKongIM   |   [Github](https://github.com/WuKongIM/WuKongIM)         |     无 |  [文档](https://githubim.com)  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;       |    悟空IM通讯端，负责长连接维护，消息投递等等 |\n|   WuKongIMAndroidSDK   |   [Github](https://github.com/WuKongIM/WuKongIMAndroidSDK)         |     [Example](https://github.com/WuKongIM/WuKongIMAndroidSDK/tree/master/app) | [文档](https://githubim.com/sdk/android/intro.html)    |    悟空IM的Android SDK  |\n|   WuKongIMiOSSDK   |   [Github](https://github.com/WuKongIM/WuKongIMiOSSDK)         |     [Example](https://github.com/WuKongIM/WuKongIMiOSSDK/tree/main/Example)  | [文档](https://githubim.com/sdk/iossdk/intro.html)     |    悟空IM的iOS SDK  |\n|   WuKongIMUniappSDK   |   [Github](https://github.com/WuKongIM/WuKongIMUniappSDK)         |     [Example](https://github.com/WuKongIM/WuKongIMUniappSDK/tree/main/examples)  | [文档](https://githubim.com/sdk/uniapp.html)      |    悟空IM的 Uniapp SDK  |\n|   WuKongIMJSSDK   |   [Github](https://github.com/WuKongIM/WuKongIMJSSDK)         |     [Example](https://github.com/WuKongIM/WuKongIMJSSDK/tree/main/examples)   | [文档](https://githubim.com/sdk/jssdk/intro.html)     |    悟空IM的 JS SDK  |\n|   WuKongIMFlutterSDK   |    [Github](https://github.com/WuKongIM/WuKongIMFlutterSDK)        |    [Example](https://github.com/WuKongIM/WuKongIMFlutterSDK/tree/master/example)   |[文档](https://githubim.com/sdk/flutter/intro.html)    |    悟空IM的 Flutter SDK |\n|   WuKongIMReactNativeDemo   |   [Github](https://github.com/wengqianshan/WuKongIMReactNative)         |     无  |  无  |    悟空IM的 React Native Demo(由贡献者 [wengqianshan](https://github.com/wengqianshan) 提供)  |\n|   WuKongIMHarmonyOSSDK   |   [Github](https://github.com/WuKongIM/WuKongIMHarmonyOSSDK)         |     [Example](https://github.com/WuKongIM/WuKongIMHarmonyOSSDK/tree/main/entry)  |  [文档](https://githubim.com/sdk/harmonyos/intro.html)   |   WuKongIM的纯血鸿蒙OS SDK  |\n\n\n\n\n节点故障转移演示\n--------\n\n![节点故障转移演示](./docs/architecture/cluster-failover.webp)\n\n\n后台截图\n---------------\n\n\n||||\n|:---:|:---:|:--:|\n|![](./docs/2.0-screen/screen-01.png)|![](./docs/2.0-screen/screen-02.png)|![](./docs/2.0-screen/screen-03.png)|\n|![](./docs/2.0-screen/screen-04.png)|![](./docs/2.0-screen/screen-05.png)|![](./docs/2.0-screen/screen-06.png)|\n|![](./docs/2.0-screen/screen-07.png)|![](./docs/2.0-screen/screen-08.png)|![](./docs/2.0-screen/screen-09.png)|\n|![](./docs/2.0-screen/screen-10.png)|![](./docs/2.0-screen/screen-11.png)| ![](./docs/2.0-screen/screen-12.png) |\n| ![](./docs/2.0-screen/screen-13.png) | ![](./docs/2.0-screen/screen-14.png) |\n\nStar\n---------------\n\n我们团队一直致力于即时通讯的研发，需要您的鼓励，如果您觉得本项目对您有帮助，欢迎点个star，您的支持是我们最大的动力。\n\n案例展示\n---------------\n\n**项目名**\n\nTangSengDaoDao\n\n**开源地址**\n\nhttps://github.com/TangSengDaoDao/TangSengDaoDaoServer\n\n**截图**\n\n||||\n|:---:|:---:|:--:|\n|![](./docs/case/tsdaodao/screenshot/conversationlist.webp)|![](./docs/case/tsdaodao/screenshot/messages.webp)|![](./docs/case/tsdaodao/screenshot/robot.webp)|\n\n\n|||          |\n|:---:|:---:|:-------------------:|\n\n![](./docs/case/tsdaodao/screenshot/pc11.png)\n\n\n\n\nWechat\n---------------\n\n如果有需要，加我拉你进群，微信号：wukongimgo\n\n![image](./wechat.png)\n\n\n\nLicense\n---------------\n\nWuKongIM is licensed under the [Apache License 2.0](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWuKongIM%2FWuKongIM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWuKongIM%2FWuKongIM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWuKongIM%2FWuKongIM/lists"}