2

总结反思 持续进步-开源即时通讯(IM)项目OpenIM 新版本release-v3.7发布

 3 weeks ago
source link: https://studygolang.com/articles/36614
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

总结反思 持续进步-开源即时通讯(IM)项目OpenIM 新版本release-v3.7发布

OpenIM · 4天之前 · 87 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    

背景 过去,我们团队对开源项目的认知较浅,过分追求进度,而忽视了代码的质量和规范。这导致了一些问题,例如部署流程设计不当:流程复杂、不规范,以及Mac与Windows部署的明显缺陷。这些问题不仅给开发者带来了困扰,也增加了社区维护的难度。

针对这些挑战,我们团队进行了深刻的反思并总结出了相关问题。目前,我们正在专注于提高代码质量和规范化工作,并在完善我们的开源贡献流程,以吸引更多贡献者参与。我们相信这是关键步骤,以扩大社区的影响力并将OpenIM发展成为一流的开源项目。

为此,我们已规划推出release-v3.7版本,该版本将全面改造部署、规范和流程等方面,并且与3.6版本数据完全兼容。

OpenIM是什么 OpenIM区别于诸如Telegram、Signal、Rocket.Chat等独立聊天应用。这些应用提供完整的用户界面和后端服务,允许用户直接下载并使用。相反,OpenIM是一个为开发者设计的开源即时通讯解决方案,它不提供直接安装使用的单独聊天应用程序。

OpenIM主要由OpenIM SDK和OpenIM Server两部分组成,它们为开发者提供了一套工具和服务,使得开发者能够在自己的应用程序中轻松集成即时通讯功能,包括发送和接收消息、用户管理、群组管理等。

总的来说,OpenIM专为开发者而设计,提供了必要的工具和框架,帮助他们在各自的应用中实施高效的即时通讯解决方案,而不是作为一个面向普通用户的独立聊天应用。

image.png

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/

image.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK