DEV Community

skiffer-git
skiffer-git

Posted on

# Reflection and Continuous Improvement - Release v3.7 of the Open Source Instant Messaging (IM) Project OpenIM

Background

In the past, our team had a shallow understanding of open-source projects, overly prioritizing progress while neglecting the quality and standardization of code. This led to several issues, such as poorly designed deployment processes: complex, non-standard processes, and clear defects in Mac and Windows deployments. These issues not only troubled developers but also increased the difficulty of community maintenance.

In response to these challenges, our team has deeply reflected and identified related issues. Currently, we are focusing on improving code quality and standardization, and perfecting our open-source contribution process to attract more contributors. We believe these are key steps to expand the community's influence and develop OpenIM into a top-tier open-source project.

To this end, we have planned the release of version v3.7, which will comprehensively overhaul aspects such as deployment, standardization, and processes, and is fully compatible with version 3.6 data.

What is OpenIM

OpenIM is different from independent chat applications like Telegram, Signal, and Rocket.Chat. These applications provide a complete user interface and backend services, allowing users to download and use directly. Conversely, OpenIM is an open-source instant messaging solution designed for developers, not providing a standalone chat application for direct installation and use.

OpenIM primarily consists of the OpenIM SDK and OpenIM Server, providing developers with a set of tools and services that enable easy integration of instant messaging features into their applications, including sending and receiving messages, user management, group management, etc.

Overall, OpenIM is designed for developers, offering the necessary tools and frameworks to implement efficient instant messaging solutions in their own applications, rather than serving as an independent chat application for general users.

Image description

Features of release-v3.7

Here is the information from the table rewritten in a non-tabular format:

  1. Introducing Mage Build - The team has discarded Shell scripts in favor of adopting the Mage build system. This new system supports various operating systems such as Linux, Windows, and Mac, as well as ARM and AMD CPU architectures.

  2. Configuration File Splitting - The global configuration file has been split into modular configurations. This change achieves module isolation and reduces system coupling, streamlining the configuration process.

  3. Unified RPC Entry Functions - RPC entry functions have been standardized. This includes standardizing log records and ensuring that version numbers are clearly displayed, enhancing clarity and maintainability.

  4. Asynchronous Notification and Webhook Handling - Notifications and Webhooks are now handled through an internal asynchronous queue. This approach decouples them from the main process, improving the system's efficiency and responsiveness.

  5. Upgraded Docker Deployment Solution - The Docker deployment solution has undergone a comprehensive upgrade. It now adheres to the principle of image independence, eliminates dependency on external network configurations, and supports multi-platform deployment.

  6. Strict Code Standard Enforcement - There is a strong emphasis on standardized error handling and log recording. The team also strictly adheres to Go programming standards to maintain high code quality.

  7. Common Code Extraction - Common modules from various projects have been extracted into a tools repository. This allows for independent configuration of parameters and easy reuse across different projects, simplifying development.

  8. Replacing protoc with Official Tools - The IM's pb generation tool has been changed from a custom version to the official version. Scripts have been used to address the issue of API response field loss caused by the omitempty setting, ensuring more robust and reliable API interactions.

About Us

Thanks to widespread developer support, OpenIM maintains a leading position in the open-source instant messaging (IM) field, currently exceeding 13k stars on GitHub. In today's era where data and privacy security are increasingly valued, the demand for privately deployed IM is gradually increasing, closely related to the rise of the domestic software industry. Particularly in the government and corporate sectors, as information technology rapidly develops and innovative industries are widely applied, the demand for IM is rapidly growing. Additionally, with the ongoing expansion of the collaborative software market, "secure and controllable" has become one of the most crucial requirements. In the post-AIGC era, IM, as the primary interface for human-machine interaction, will inevitably become increasingly valuable. We look forward to OpenIM playing a greater role in the post-AIGC era, enabling every application to integrate OpenIM to enhance overall efficiency and security.

github: https://github.com/openimsdk
developer: https://docs.openim.io/zh-Hans/

Image description

Top comments (0)