module
Version:
v0.0.0-...-b3af538
Opens a new window with list of versions in this module.
Published: May 5, 2024
License: Apache-2.0
Opens a new window with license information.
README
¶
fly-im介绍
在IM系统工作几年经验的学习。
该开源项目的目标是构建一个高性能的,高弹性的,可靠的分布式即时通讯系统。
并探索丰富的聊天场景。
目前还是一个粗糙的项目,有考虑不足的地方还望见谅😭。
功能
在强大的通讯系统的核心功能的支持下,可以支持丰富的业务。
- 多协议支持
- 核心通讯能力:
- 丰富的聊天场景:在强大的核心通讯能力支持下,可以支持丰富的聊天能力,探索有趣的社交场景。
- 好友/工作群:由群内成员邀请,才能加入(一般用于亲朋好友), 无需审批和同意,有群人数限制: WorkRoom
- 社交群:可以通过搜索等,可以发起加群申请,管理员同意后才能加入(类似QQ群): CommunityRoom
- 陌生人/会议群:创建后可以随意进出的群,不需要申请,有人数限制,支持历史消息存储, 一般用于陌生人社交: MeetingRoom
- 直播群:创建后可以随意进出的群,不需要申请,没有人数限制,但是不支持历史消息存储,不对消息进可靠保证: LiveChatRoom
- 万人大群:有一定限制的群,功能上和普通的社交群一样,优先级,并发数等, 暂时先这么做: LargeRoom
- 已读/已收到回执:在发消息时支持可选。
- 删除/撤回:
- 支持自定义聊天内容:语音,视频,图片,表情等
- 空间计算能力的探索:探索新的社交领域,会议,游戏等,需要灵感。。。
- 多设备登录/消息漫游等
- 音视频通话信令:基于通讯的传递音视频通话信令的能力。
- ... 是否还有更多有趣的聊天场景可以补充。
- 完善的监控能力:
- 海量用户支持:亿级用户,亿级消息吞吐量。(也许吧)
- Webhook:在某些时机会调用业务方的API,以触发某些事件。
- 跨平台客户端:Rust/Go + Flutter. Flutter作为UI绘制,Rust/Go用于处理前端的业务逻辑。
- 为了支持各种自定义的需求,在核心架构不变下,尽可能的让各个模块都是可替换的,默认提供开箱即用的,还没想好怎么做.
- 消息协议
- 数据存储
- Rpc实现
- 消息队列实现
- 各种聊天业务的实现
架构设计
架构文档
文档
设计文档
性能测试
性能测试
感谢
讨论区
目前计划放在B站,会以专栏的形式记录某些主题(可惜目前的等级还不能发专栏,需要水一段时间的经验).
大概会分为以下几个专栏:
- 架构设计
- 性能优化
- 代码质量
- 观察性建设
- 稳定性建设
- IM系统的未来
- 有趣的聊天形式
Directories
¶
Click to show internal directories.
Click to hide internal directories.