开源 · MIT 协议

用 Go 构建的
即时通讯系统

WebSocket 与 TCP 双协议接入,单聊、群聊、离线消息、撤回、全文搜索与多网关集群开箱即用。一套 Kotlin Multiplatform 代码覆盖 Android、iOS 与桌面端。

GO-IM 桌面端:会话列表与聊天面板
GO-IM iOS 端会话列表
Download

选择你的平台

客户端由 Jenkins 自动构建并发布到 GitHub Releases,下方链接始终指向最新版本。

Android

Android 8.0 及以上

APK 安装包,安装时需允许「安装未知来源应用」。

下载 APK

macOS

Apple Silicon(M 系列芯片)

DMG 安装包,已通过 Apple 公证,双击即可安装。

下载 DMG

Windows

Windows 10 / 11 x64

MSI 安装包。安装包未签名,SmartScreen 提示时点「更多信息」→「仍要运行」。

下载 MSI

Linux

Debian / Ubuntu x64

DEB 安装包,使用 sudo apt install ./GO-IM-*.deb 安装。

下载 DEB

iOS

iOS 16 及以上

未签名 IPA,需使用 AltStore、Sideloadly 等工具自签安装。

下载 IPA

所有版本与校验和见 GitHub Releases

Features

一个 IM 该有的,都在这里

从连接接入到消息落库,每一层都可独立替换与扩展。

双协议接入

WebSocket 与基于 gnet 的原生 TCP 并行,Protobuf 二进制编码,心跳保活与断线重连。

好友与群聊

好友申请记录、备注名与个性签名,联系人在线状态;群组创建、改名与群昵称,群消息扇出投递,@ 提及成员。

离线消息

在线实时推送、离线 Redis 队列暂存,重新上线后自动补拉,消息去重与 ACK 确认。

消息撤回

两分钟内撤回已发送消息,跨网关与离线用户同步撤回通知。

多端在线与已读

手机、电脑可同时在线,消息、撤回与已读状态多端同步;已读回执实时回传,未读数精确统计。

富媒体

图片、视频、文件、语音与贴纸表情;RustFS 对象存储,自动生成图片缩略图。

全文搜索

按关键字检索历史消息,游标分页,客户端 ⌘/Ctrl+F 快速唤起。

多网关集群

一致性哈希路由用户,gRPC 跨节点转发,Redis 服务发现与健康检查自动摘除故障节点。

Architecture

分层架构,按需伸缩

接入层只管连接与路由,持久化通过 Kafka 异步完成,热路径不被存储拖慢。

客户端
Kotlin MultiplatformCompose Multiplatform
WebSocket / TCP · Protobuf
Gateway
gorilla/websocketgnetJWT限流 · 去重 · ACK一致性哈希
gRPC · Kafka
Logic
gRPC 服务Kafka 消费批量落库历史查询
存储
数据层
MySQLRedisKafkaRustFS

现在就开始聊天

下载客户端,或者用 Docker Compose 一键部署属于你自己的 IM 服务。