component-base

module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2023 License: MIT

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.

Directories

Path Synopsis
Package auth encrypt and compare password string.
Package auth encrypt and compare password string.
cli
Package core implements some core functions used by apimachinery.
Package core implements some core functions used by apimachinery.
Package fields implements a simple field system, parsing and matching selectors with sets of fields.
Package fields implements a simple field system, parsing and matching selectors with sets of fields.
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
meta
v1
Package v1 contains API types that are common to all versions.
Package v1 contains API types that are common to all versions.
pkg
conversion
Package conversion provides go object versioning.
Package conversion provides go object versioning.
conversion/queryparams
Package queryparams provides conversion from versioned runtime objects to URL query values
Package queryparams provides conversion from versioned runtime objects to URL query values
fields
Package fields implements a simple field system, parsing and matching selectors with sets of fields.
Package fields implements a simple field system, parsing and matching selectors with sets of fields.
labels
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
Package labels implements a simple label system, parsing and matching selectors with sets of labels.
types
Package types implements various generic types used throughout kubernetes.
Package types implements various generic types used throughout kubernetes.
util/errors
Package errors implements various utility functions and types around errors.
Package errors implements various utility functions and types around errors.
util/framer
Package framer implements simple frame decoding techniques for an io.ReadCloser
Package framer implements simple frame decoding techniques for an io.ReadCloser
util/httpstream
Package httpstream adds multiplexed streaming support to HTTP requests and responses via connection upgrades.
Package httpstream adds multiplexed streaming support to HTTP requests and responses via connection upgrades.
util/httpstream/wsstream
Package wsstream contains utilities for streaming content over WebSockets.
Package wsstream contains utilities for streaming content over WebSockets.
util/proxy
Package proxy provides transport and upgrade support for proxies.
Package proxy provides transport and upgrade support for proxies.
util/rand
Package rand provides utilities related to randomization.
Package rand provides utilities related to randomization.
util/sets
Package sets has generic set and specified sets.
Package sets has generic set and specified sets.
util/version
Package version provides utilities for version number comparisons
Package version provides utilities for version number comparisons
util/wait
Package wait provides tools for polling or listening for changes to a condition.
Package wait provides tools for polling or listening for changes to a condition.
util/waitgroup
Package waitgroup implements SafeWaitGroup wrap of sync.WaitGroup.
Package waitgroup implements SafeWaitGroup wrap of sync.WaitGroup.
version
Package version supplies the type for version information collected at build time.
Package version supplies the type for version information collected at build time.
watch
Package watch contains a generic watchable interface, and a fake for testing code that uses the watch interface.
Package watch contains a generic watchable interface, and a fake for testing code that uses the watch interface.
Package runtime defines some functions used to encode/decode object.
Package runtime defines some functions used to encode/decode object.
Package scheme defines some useful function for group version.
Package scheme defines some useful function for group version.
Package selection defiens some operators to use.
Package selection defiens some operators to use.
third_party
forked/golang/json
Package json is forked from the Go standard library to enable us to find the field of a struct that a given JSON key maps to.
Package json is forked from the Go standard library to enable us to find the field of a struct that a given JSON key maps to.
forked/golang/reflect
Package reflect is a fork of go's standard library reflection package, which allows for deep equal with equality functions defined.
Package reflect is a fork of go's standard library reflection package, which allows for deep equal with equality functions defined.
Package time implements a new time with specified time format.
Package time implements a new time with specified time format.
This program ensures source code files have copyright license headers.
This program ensures source code files have copyright license headers.
util
homedir
Package homedir returns the home directory of any operating system.
Package homedir returns the home directory of any operating system.
idutil
Package idutil is a tool set used to generate multiple id string.
Package idutil is a tool set used to generate multiple id string.
net
sets
Package sets has auto-generated set types.
Package sets has auto-generated set types.
wait
Package wait provides tools for polling or listening for changes to a condition.
Package wait provides tools for polling or listening for changes to a condition.
Package validation defines apimachinery user-defined validations.
Package validation defines apimachinery user-defined validations.
field
Package field implements field path functions when do validation.
Package field implements field path functions when do validation.
Package version supplies version information collected at build time to apimachinery components.
Package version supplies version information collected at build time to apimachinery components.
verflag
Package verflag defines utility functions to handle command line flags related to version of OpenIM.
Package verflag defines utility functions to handle command line flags related to version of OpenIM.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL