/xxim-server

惺惺 —— 属于你的社交地盘!惺惺是一个100%开源社交平台,每个人都可以搭建自己的服务器,掌握数据的所有权。此APP非盈利项目!

Primary LanguageGo

xxim

xxim-server是一个功能超多的开箱即用的IM服务器。它的诞生是为了让每个人都能使用自己的IM APP,不需要再使用令人不爽的第三方IM APP。xxim-server是一个开源项目,欢迎大家一起来完善它。

Go Go Report Card Release Go Reference Awesome Go License: MIT XXIM

⚠️⚠️⚠️⚠️⚠️⚠️

Status:

代码重构升级中,在线体验暂时不可用。

⚠️⚠️⚠️⚠️⚠️⚠️

🤷‍ xxim 介绍

简体中文 | English

xxim-server代码不复杂,im大多逻辑都在于客户端,所以xxim-server只是一个简单的im服务器,但它具备了一个IM应有的全部功能。

在线体验:惺惺企业

全平台sdk:xxim_sdk_universal 正在开发中,欢迎各原生平台开发者加入。通用sdk选择使用rust开发,因为rust的性能和安全性都是目前最好的。

包括但不限于:

  • 发送消息(可定时的、可群发),包括:文本、图片、语音、视频、文件、位置、名片、撤回、转发、@、表情、对方正在输入、自定义消息等
  • 按需拉取离线消息,且没有消息数量/天数限制
  • 群聊20万成员上限
  • 端对端加密(ECOD密钥协商算法)
  • p2p连接,无公网ip也能搭建属于自己的im服务器。(也可以使用传统网络方式)
  • 当用户不在线时,通过厂商推送(极光、腾讯、Mob)将消息推送给用户

xxim的背景

2022年初,我们公司的社交产品需要一个IM,但是我们不想使用第三方IM,所以我们自己开发了一个IM,但是我们发现开发一个IM并不容易,所以我们决定开源出来,让更多的人能够使用自己的IM。

  • 服务端使用 Go 语言开发
    • 高性能
    • 简单语法,易于维护代码
    • 部署简单
    • 服务器资源占用少
  • 客户端sdk使用 rust 开发
    • 高性能
    • 安全性高
    • 原生async/await,很适合客户端开发
    • 动静态库体积小

xxim的设计原则

通过im服务器,我们希望解决以下问题:

  • 聊天受监控
  • 消息漫游天数有限制
  • 群聊人数有限制
  • 消息占用磁盘空间过大

xxim-server 架构

点点star! ⭐

如果你喜欢或正在使用这个项目来学习或开始你的解决方案,请给它一个星。谢谢!

Star History Chart

帮助我们 🙏

如果你想帮助我们,可以投几个币给我们,你们的支持是我们开发的最大动力。

支付宝 微信 币安(USDT)
AliPay WechatPay binance