背景
过去,我们团队对开源项目的认知较浅,过分追求进度,而忽视了代码的质量和规范。这导致了一些问题,例如部署流程设计不当:流程复杂、不规范,以及Mac与Windows部署的明显缺陷。这些问题不仅给开发者带来了困扰,也增加了社区维护的难度。
针对这些挑战,我们团队进行了深刻的反思并总结出了相关问题。目前,我们正在专注于提高代码质量和规范化工作,并在完善我们的开源贡献流程,以吸引更多贡献者参与。我们相信这是关键步骤,以扩大社区的影响力并将OpenIM发展成为一流的开源项目。
为此,我们已规划推出release-v3.7版本,该版本将全面改造部署、规范和流程等方面,并且与3.6版本数据完全兼容。
OpenIM是什么
OpenIM区别于诸如Telegram、Signal、Rocket.Chat等独立聊天应用。这些应用提供完整的用户界面和后端服务,允许用户直接下载并使用。相反,OpenIM是一个为开发者设计的开源即时通讯解决方案,它不提供直接安装使用的单独聊天应用程序。
OpenIM主要由OpenIM SDK和OpenIM Server两部分组成,它们为开发者提供了一套工具和服务,使得开发者能够在自己的应用程序中轻松集成即时通讯功能,包括发送和接收消息、用户管理、群组管理等。
总的来说,OpenIM专为开发者而设计,提供了必要的工具和框架,帮助他们在各自的应用中实施高效的即时通讯解决方案,而不是作为一个面向普通用户的独立聊天应用。
release-v3.7特性列表
序号 更新内容 描述
1 引入Mage构建 废弃Shell脚本,采用Mage构建系统,支持Linux、Windows、Mac系统,以及ARM和AMD CPU架构。
2 配置文件拆分 将全局配置文件分拆成模块化配置,实现模块间隔离,减少系统耦合。
3 RPC入口函数统一 对RPC入口函数进行统一处理,规范化日志记录,并确保版本号清晰展示。
4 通知和Webhook异步处理 通过内部异步队列处理通知和Webhook,与主流程解耦。
5 Docker部署方案升级 全面升级Docker部署方案,按照镜像独立原则,消除对外部网络配置的依赖,支持多平台部署。
6 代码规范严格执行 强调错误处理、日志记录的标准化,并严格遵守Go语言编程规范。
7 通用代码抽离 将各项目的通用模块抽离到tools仓库,配置参数独立,方便各项目复用。
8 protoc替换到官方工具 将IM的pb生成工具由自定义版本修改为官方版本,并用脚本修改omitempty造成的API resp字段丢失问题。
关于我们
得益于广泛的开发者支持,OpenIM在开源即时通讯(IM)领域保持领先地位,目前在GitHub上的星标已超过13k。在如今数据和隐私安全日益受到重视的背景下,私有部署的IM需求正在逐步增加,这一趋势与国内软件产业的兴起密切相关。特别是在政府和企业领域,随着信息技术的快速发展和创新产业的广泛应用,对IM的需求正急速增长。此外,随着协同办公软件市场的持续扩展,“安全可控”已成为最关键的要求之一。在后AIGC时代,IM作为人机交互的首要接口,其价值势必会越来越大。我们期待OpenIM在后AIGC时代能发挥更大的作用,使每一个应用都能集成OpenIM,提升整体效率和安全性。
github: https://github.com/openimsdk
developer: https://docs.openim.io/zh-Hans/