Skip to content

OpenIM Component-Base: Reusable components and utilities for OpenIM projects.

License

Notifications You must be signed in to change notification settings

openim-sigs/component-base

Repository files navigation

OpenIM Component-Base

go-zero is a web and rpc framework with lots of builtin engineering practices. It’s born to ensure the stability of the busy services with resilience design and has been serving sites with tens of millions of users for years.

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

Implement OpenIM RPC Proposal: https://github.com/OpenIMSDK/community/edit/main/RFC/0006-openim-component-base.md, OepnIM Server issue: openimsdk/open-im-server#955

Welcome to the OpenIM Component-Base repository. This repository hosts a collection of shared tools and utilities dedicated to strengthening the modular and scalable nature of the OpenIM project ecosystem.

Table of Contents

Introduction

OpenIM strives to offer a potent, streamlined, and expansive instant messaging solution. To ensure a cohesive yet modular architecture, common components are housed in this repository. This structure not only delineates clear boundaries but also facilitates the reuse of components across diverse OpenIM projects.

Purpose

This library is a shared dependency for servers and clients to work with OpenIM API infrastructure without direct type dependencies. Its first consumers are github.com/openim-sigs/gh-bot.

Motivation

In our journey to optimize and expand the OpenIM project, we discerned overlapping tools and utilities across repositories like chat, core, and server. To streamline dependencies and enhance reusability, the component-base repository was conceived, inspired by best practices from projects like Kubernetes.

Getting Started

To integrate any component from this repository:

  1. Clone the repository:
   git clone https://github.com/OpenIM/component-base.git
  1. Delve into the chosen component's directory.
  2. Adhere to the designated README or documentation pertinent to that component.

Components

[Mention primary components with succinct descriptions. For instance:]

  • ComponentConfig: Streamlines flag and command handling for better user interaction. More Details
  • HTTPSUtility: Ensures secure HTTPS serving. More Details
  • AuthDelegate: Manages delegated authentication and authorization. More Details
  • LogManager: Provides uniform logging functionalities across projects. More Details

(Elaborate on this index with the inclusion of new components.)

Contribution

Our doors are always open to community contributions. If the idea of enhancing OpenIM resonates with you, do peruse our contribution guidelines and embark on this collaborative voyage!

Prior Art

Our inspiration draws from Kubernetes's component-base repository, which embodies a consolidated platform for components, encouraging shared utilities and consistent configurations.

License

Embarking on a project with OpenIM Component-Base implies agreement with our MIT License. For an exhaustive understanding, we recommend perusing the LICENSE file.

About

OpenIM Component-Base: Reusable components and utilities for OpenIM projects.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published