Categorygithub.com/openim-sigs/component-base

# README

OpenIM Component-Base

Implement OpenIM RPC Proposal: https://github.com/OpenIMSDK/community/edit/main/RFC/0006-openim-component-base.md, OepnIM Server issue: https://github.com/OpenIMSDK/Open-IM-Server/issues/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.

# Packages

Package auth encrypt and compare password string.
No description provided by the author
Package core implements some core functions used by apimachinery.
Package fields implements a simple field system, parsing and matching selectors with sets of fields.
No description provided by the author
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
No description provided by the author
No description provided by the author
Package runtime defines some functions used to encode/decode object.
Package scheme defines some useful function for group version.
Package selection defiens some operators to use.
No description provided by the author
No description provided by the author
Package time implements a new time with specified time format.
This program ensures source code files have copyright license headers.
No description provided by the author
Package validation defines apimachinery user-defined validations.
Package version supplies version information collected at build time to apimachinery components.