🚀 企业级即时通讯平台 - 基于Go-Zero微服务架构构建,支持移动端(UniApp)、桌面端(Electron)和Web端,提供实时通信能力。
- 多因子认证 - 邮箱验证、短信验证码、生物识别支持
- 端到端加密 - 消息传输和存储加密
- 基于角色的访问控制 - 细粒度权限管理和管理员控制
- 审计日志 - 全面的安全事件追踪
- 实时通信 - 基于WebSocket的即时消息
- 多格式支持 - 文本、图片、文件、语音消息、表情
- 消息状态 - 已读回执、正在输入提示、送达确认
- 消息搜索 - 全文本对话搜索
- 消息撤回 - 限时消息删除
- 联系人管理 - 二维码扫描、联系人导入导出
- 群组管理 - 创建、管理和审核群聊
- 好友请求 - 带自定义消息的审批流程
- 用户资料 - 丰富的个人资料信息和头像
- 15+微服务 - 可扩展、可维护的服务分解
- 高可用性 - 多实例部署支持
- 服务发现 - 基于ETCD的服务注册
- 负载均衡 - 智能请求分发
- 熔断器 - 故障容忍和弹性
- 移动应用 - 通过UniApp框架支持iOS/Android
- 桌面应用 - 通过Electron支持Windows/macOS/Linux
- API网关 - 第三方集成的RESTful API
技术 | 版本 | 用途 |
---|---|---|
Go-Zero | v1.6.0+ | 微服务框架 |
gRPC | v1.58+ | 服务间通信 |
WebSocket | - | 实时消息 |
MySQL | 8.0+ | 主数据存储 |
Redis | 6.0+ | 缓存和会话管理 |
ETCD | 3.5+ | 服务发现和配置 |
Docker | 20.0+ | 容器化 |
平台 | 框架 | 特性 |
---|---|---|
移动端 | UniApp + Vue 3 | 跨平台移动应用 |
桌面端 | Electron + Vue 3 | 原生桌面体验 |
- 消息延迟: 平均 < 100ms
- 并发用户: 支持 10,000+
- 消息吞吐量: 100,000+ 消息/秒
- 可用性: 99.9% 正常运行时间
- 响应时间: API响应 < 200ms
┌─────────────────┐ ┌─────────────────┐
│ 移动端应用 │ │ 桌面端应用 │
│ (UniApp) │ │ (Electron) │
└─────────┬───────┘ └─────────┬───────┘
│ │
└──────────────────────┘
│
┌─────────────┴─────────────┐
│ API网关 │
│ (端口: 20800) │
└─────────────┬─────────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
┌───────▼────────┐ ┌───────────▼──────────┐ ┌────────▼────────┐
│ 认证服务 │ │ 用户服务 │ │ 好友服务 │
│ API:20100 │ │ API:20000 │ │ API:20200 │
│ RPC:30100 │ │ RPC:30000 │ │ RPC:30200 │
└────────────────┘ └──────────────────────┘ └─────────────────┘
│ │ │
┌───────▼────────┐ ┌───────────▼──────────┐ ┌────────▼────────┐
│ 聊天服务 │ │ 群组服务 │ │ 文件服务 │
│ API:20300 │ │ API:20500 │ │ API:20600 │
│ RPC:30300 │ │ RPC:30500 │ │ RPC:30600 │
└────────────────┘ └──────────────────────┘ └─────────────────┘
│ │ │
┌───────▼────────┐ ┌───────────▼──────────┐ ┌────────▼────────┐
│ WS服务 │ │ 表情服务 │ │ 反馈服务 │
│ API:20400 │ │ API:20700 │ │ API:21400 │
│ - │ │ - │ │ - │
└────────────────┘ └──────────────────────┘ └─────────────────┘
│
└─────────────────────────────────────────────────────────────┐
│
┌─────────────────────────────────────────────────┴─┐
│ 数据层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL │ │ Redis │ │ ETCD │ │
│ │ (8.0+) │ │ (6.0+) │ │ (3.5+) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└───────────────────────────────────────────────────┘
- 📖 详细文档: https://wsrh8888.github.io/beaver-docs/
- 🎥 视频教程: B站频道
- 📱 体验包下载: 海狸IM Android体验包
- 💬 QQ群: 1013328597
项目 | 仓库地址 | 说明 |
---|---|---|
beaver-server | GitHub | Gitee | 后端微服务 |
beaver-mobile | GitHub | Gitee | 移动端应用 |
beaver-desktop | GitHub | Gitee | 桌面端应用 |
beaver-server/
├── app/ # 微服务应用
│ ├── auth/ # 认证服务
│ │ ├── auth_api/ # HTTP API层
│ │ └── auth_rpc/ # gRPC服务层
│ ├── chat/ # 聊天服务
│ │ ├── chat_api/ # HTTP API层
│ │ ├── chat_rpc/ # gRPC服务层
│ │ └── chat_models/ # 数据模型
│ ├── dictionary/ # 字典服务
│ │ ├── dictionary_api/ # HTTP API层
│ │ └── dictionary_rpc/ # gRPC服务层
│ ├── feedback/ # 反馈服务
│ │ ├── feedback_api/ # HTTP API层
│ │ └── feedback_models/ # 数据模型
│ ├── file/ # 文件管理服务
│ │ ├── file_api/ # HTTP API层
│ │ ├── file_rpc/ # gRPC服务层
│ │ └── file_models/ # 数据模型
│ ├── friend/ # 好友管理服务
│ │ ├── friend_api/ # HTTP API层
│ │ ├── friend_rpc/ # gRPC服务层
│ │ └── friend_models/ # 数据模型
│ ├── gateway/ # API网关
│ ├── group/ # 群组管理服务
│ │ ├── group_api/ # HTTP API层
│ │ ├── group_rpc/ # gRPC服务层
│ │ └── group_models/ # 数据模型
│ ├── moment/ # 朋友圈服务
│ │ ├── moment_api/ # HTTP API层
│ │ └── moment_models/ # 数据模型
│ ├── user/ # 用户管理服务
│ │ ├── user_api/ # HTTP API层
│ │ ├── user_rpc/ # gRPC服务层
│ │ └── user_models/ # 数据模型
│ └── ws/ # WebSocket服务
│ └── ws_api/ # HTTP API层
├── common/ # 共享组件
│ ├── middleware/ # HTTP/gRPC中间件
│ ├── models/ # 共享数据模型
│ ├── response/ # 响应工具
│ └── validator/ # 请求验证
├── core/ # 核心配置
│ ├── etcd.go # ETCD客户端
│ ├── gorm.go # 数据库连接
│ └── redis.go # Redis客户端
├── static/ # 静态资源
├── template/ # 代码生成模板
└── utils/ # 工具函数
我们欢迎社区贡献!详情请参阅贡献指南。
- Fork 本仓库
- 创建 特性分支 (
git checkout -b feature/AmazingFeature
) - 提交 更改 (
git commit -m 'Add some AmazingFeature'
) - 推送 到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
- 🐛 Bug报告 - 帮助我们识别和修复问题
- 💡 功能建议 - 建议新功能和改进
- 📝 文档 - 改进文档和示例
- 🔧 代码贡献 - 提交代码改进和新功能
- 🧪 测试 - 帮助测试和质量保证
本项目基于 MIT 协议开源 - 详情请参阅 LICENSE 文件。
项目定位:本项目主要用于技术学习和交流,希望为开发者提供一个学习和研究的平台。
使用建议:
- 📚 学习交流 - 欢迎用于个人学习、技术研究、学术交流
- 🤝 开源贡献 - 欢迎提交代码改进、Bug修复、功能建议
- 🔒 合规使用 - 请确保使用方式符合当地法律法规
- 💡 创新应用 - 鼓励基于本项目进行创新性应用开发
温馨提示:
- 本项目采用 MIT 开源协议,您可以自由使用、修改和分发
- 建议在使用前仔细阅读相关法律法规,确保合规使用
- 如有疑问或需要帮助,欢迎通过 QQ 群或 GitHub Issues 交流
重要:如果您基于本项目进行二次开发或发布,必须在项目中保留以下信息:
- 关于页面:必须在"关于我们"、"关于应用"或类似页面中包含项目来源标注
- 必需文本:"基于 Beaver IM 开源IM项目开发"
- 链接:必须提供可点击的原始项目链接
- README.md:必须在项目介绍或描述中包含来源标注
- 必需文本:"基于 Beaver IM 开源IM项目开发"
- 链接:必须提供可点击的原始项目链接
- LICENSE 文件:保留原项目 MIT 协议信息
- 商业使用:公司或企业级商业应用必须事先获得明确授权
💡 友好提醒:本项目支持个人学习和个人商业使用。如果是公司或企业级商业应用,必须事先获得我们的明确授权,否则不得用于商业目的。
📖 详细法律条款:请参阅 LEGAL.md 文件了解完整的法律免责声明和使用要求。
如果这个项目对你有帮助,欢迎请作者喝杯茶 ☕
如果这个项目对你有帮助,请在GitHub上给我们一个 ⭐ Star!
Made with ❤️ by Beaver IM Team
企业级即时通讯平台
企业级即时通讯平台