Coordinate IM 系统 - 企业即时通讯解决方案
Coordinate IM 系统 - 企业即时通讯解决方案⚡ 高性能 · 安全可靠 · 完全自主可控 产品简介Coordinate是一款从零自主研发的企业级即时通讯系统采用Rust 语言构建具备高性能、高可靠、低资源占用的特性。系统包含服务端、桌面客户端和管理后台三大核心组件为企业提供一站式通讯解决方案。核心理念安全优先服务端统一管控订阅权限客户端仅保留基础连接权限性能至上基于 MQTT 广播引擎毫秒级消息延迟支持万级并发统一技术栈前后端均采用 Rust消除技术栈碎片化 核心组件组件技术栈说明coordinate-serverRust Axum PostgreSQLHTTP API 服务处理用户/团队/频道/帖子/文件等核心业务逻辑coordinate-broadcastRust MQTT 协议实时消息广播引擎支持 WebSocket 连接与分布式 pub/subcoordinate-desktopRust GPUI跨平台桌面客户端Rocket.Chat 风格 UIcoordinate-sdkRust多语言客户端 SDK一次开发多端接入coordinate-connectorRustMQTT 协议实现模块coordinate-coreRust共享类型与模型定义管理后台Web 管理界面用户管理、权限配置、系统监控、日志分析✨ 核心特性1. 高性能消息分发基于rumqttd二次开发的广播组件支持万级并发连接rumqttd 官方压测数据10,000消息端到端延迟 50ms消息持久化与历史回溯主题格式users/{user_id}、channels/{channel_id}、teams/{team_id}2. ️ 智能安全订阅服务端统一管控订阅权限权限精细化隔离客户端仅保留CONNECT / DISCONNECT / PING权限PUBLISH / SUBSCRIBE / UNSUBSCRIBE 由服务端 MQTT 客户端代理支持批量订阅/退订与清空订阅零数据库依赖广播服务不直连数据库通过 MQTT 客户端接收指令3. 卓越桌面体验采用GPUI框架开发Zed 编辑器同款原生性能Rocket.Chat 风格 UI 设计三栏布局左侧工作区/服务器切换栏中侧频道/私聊列表右侧主聊天区域流畅的滚动体验与响应式界面支持中英文双语界面rust-i18n用户头像支持在线/离线状态指示4. 完整通讯功能功能描述频道 (Channel)公开/私有频道支持成员管理 ✅私聊 (DM)一对一即时消息 ✅消息线程 (Thread)消息回复链支持引用 ✅文件传输上传/下载/分享文件 ✅Markdown消息富文本格式支持 ✅提及消息中 用户提醒 ✅机器人 (Bot)服务端支持管理客户端接入 ⏳ 规划中5. 企业级权限体系基于角色 (Role)的权限控制模型团队 (Team)工作区级别隔离频道成员精细化管理 技术架构coordinate-broadcastcoordinate-server桌面客户端 coordinate-desktopHTTP :8065WS :8000MQTTRust GPUI960x680 双线程HTTP :8065业务逻辑MQTT 客户端→ broadcastWebSocket :8000RPC :8066PostgreSQL Redis关键端口端口服务说明8065coordinate-serverHTTP REST API桌面客户端调用8000coordinate-broadcastWebSocket桌面客户端实时消息8066coordinate-broadcastMQTT 控制接口服务端订阅管理6379Redis缓存与会话存储5432PostgreSQL持久化数据存储主题订阅格式# 用户消息 users/{user_id} # 频道消息 channels/{channel_id} # 团队消息 teams/{team_id} 数据模型用户模型用户信息与头像在线状态管理在线/离线/忙碌/离开/自定义用户偏好设置 (Preference)通讯模型Team团队/工作区顶级组织单元 ✅Channel公开或私有频道 ✅Thread消息线程消息 Reply 链 ✅Post消息主体 ✅Direct Message一对一私聊 ✅FileInfo文件元数据 ✅ 适用场景场景说明企业内通内部协作、通知公告、文件共享团队协作项目沟通、任务协调、知识沉淀客服系统客户咨询、工单流转、满意度评价物联网设备状态推送、告警通知、远程控制分布式通知系统事件推送、服务间通信 技术优势优势说明⚡Rust 语言内存安全无 GC 停顿极致性能自研协议不依赖 Kafka/RabbitMQ降低运维复杂度统一技术栈前后端同源 Rust减少技术栈维护成本弹性扩展广播服务无状态支持水平扩容安全架构服务端集中权限管控安全边界清晰低资源占用二进制部署内存占用 100MB性能指标指标数值单机并发连接10,000(rumqttd 官方压测)消息吞吐量100,000 msg/s端到端延迟 50ms内存占用 100MB启动时间 2s 安全特性权限收敛客户端无 PUBLISH/SUBSCRIBE 权限由服务端代理MQTT 鉴权内部 MQTT 客户端使用静态密钥WebSocket 认证连接时携带 token 认证数据隔离Team 级别数据完全隔离无外部依赖广播服务不直连数据库缩小攻击面 快速开始环境要求Rust 1.70PostgreSQL 14Redis 7服务端启动# 1. 启动 Redisdockerrun--nameredis-d-p6379:6379 redis# 2. 启动消息广播服务cargorun--bincoordinate-broadcast--release---cmqtt.toml-v# 3. 启动 API 服务cargorun--bincoordinate-server -- serve-cconfig.toml# 4. 运行数据库迁移 (如需要)cdmigrationsrefinery migrate桌面客户端# 编译cargobuild--release# 运行cargorun# 环境变量 (可选)exportCOORDINATE_ENDPOINThttp://localhost:8065exportLOCAL_DIR./data# 测试模式RUST_LOGdebugcargorunAPI 验证# 健康检查curlhttp://localhost:8065/health# WebSocket 连接ws://localhost:8000 项目结构coordinate/ # IM 服务端 ├── coordinate-server/ # API 服务 (Axum) ├── coordinate-broadcast/ # 消息广播 (MQTT WebSocket) ├── coordinate-desktop/ # 桌面客户端 (Rust GPUI) ├── coordinate-sdk/ # 客户端 SDK ├── coordinate-connector/ # MQTT 协议实现 ├── coordinate-core/ # 共享类型 └── migrations/ # 数据库迁移 (refinery) coordinate-desktop/ # 桌面端 ├── src/ # GPUI 源码 ├── locales/ # 国际化资源 └── data/ # 本地数据存储 frontend/ # 管理端前端 ├── src/ # 前端源码 └── public/ # 静态资源️ 发展规划移动端 iOS/Android 原生客户端端到端加密 (E2EE)消息已读回执与未读计数频道 pin 置顶消息搜索与历史归档视频/语音通话能力国际化更多语言群组 (Group)机器人 (Bot) 客户端接入 联系我们 邮箱majingchao_xi163.comBuilt with Rust | Performance by Design | Security by Default