tools

module
v0.0.50-alpha.9 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2024 License: Apache-2.0

README

openim-tools

⭐️ OpenIM tools. ⭐️

good first

English中文


Project Toolkit Documentation

This project includes a series of tools and libraries applicable to OpenIM, along with some other project-provided tool supports, aimed at supporting efficient solution development. Below is an introduction to the functionalities of each module:

a2r

  • api2rpc.go: A tool for converting API to RPC, used for converting HTTP API requests into RPC calls.

apiresp

  • format.go, gin.go, http.go, resp.go: Handles the formatting, encapsulation, and sending of API responses, supporting different web frameworks.

checker

  • check.go: Provides service health checks and dependency verification functions.

config

  • config.go, config_parser.go, config_source.go, manager.go, path.go: Configuration management module, supporting the parsing, loading, and dynamic updating of configurations.
  • validation: Provides tools and libraries for configuration validation.

db

  • mongo, pagination, redis, tx.go: Database operation-related tools, including support for MongoDB, Redis, and transaction management.

discovery

  • discovery_register.go: Service discovery and registration functions.
  • zookeeper: Service discovery implementation based on Zookeeper.

env

  • env.go, env_test.go: Environment variable management tools, including loading and parsing environment variables.

errs

  • code.go, coderr.go, error.go, predefine.go, relation.go: Error code management and custom error types.

field

  • file.go, path.go: Utilities for file operations and path generation.
  • Related test files.

log

  • color.go, encoder.go, logger.go, sql_logger.go, zap.go, zk_logger.go: Log management module, supporting multiple log formats and outputs.

[!IMPORTANT] For more information about OpenIM log, please read https://github.com/openimsdk/open-im-server/blob/main/docs/contrib/logging.md

mcontext

  • ctx.go: Context management tool, used for passing request-related information between middleware and services.

mq

  • kafka: Support for message queues based on Kafka.

mw

  • gin.go, intercept_chain.go, rpc_client_interceptor.go, rpc_server_interceptor.go: Middleware and interceptors, used for preprocessing and postprocessing of requests.
  • specialerror: Special error handling module.

tokenverify

  • jwt_token.go, jwt_token_test.go: JWT token verification and testing.

utils

The utils contain multiple utility libraries, such as encoding, encrypt, httputil, jsonutil, network, splitter, stringutil, timeutil: Providing various common functionalities, such as encryption, encoding, network operations, etc.

encoding
  • base64.go & base64_test.go: Provides utility functions for Base64 encoding and decoding, and their unit tests.
encrypt
  • encryption.go & encryption_test.go: Contains functionalities for encryption and decryption, supporting common encryption algorithms, and related unit tests.
goassist
  • jsonutils.go & jsonutils_test.go: Provides utility functions for handling JSON data, such as parsing and generating JSON, and related unit tests.
httputil
  • http_client.go & http_client_test.go: Encapsulates HTTP client operations, providing convenient methods for sending HTTP requests, and their unit tests.
jsonutil
  • interface.go, json.go & json_test.go: Focuses on JSON data handling, including more advanced JSON operations and customized JSON parsing methods, and their unit tests.
network
  • ip.go & ip_test.go: Provides network-related utility functions, such as parsing and validating IP addresses, and related unit tests.
splitter
  • splitter.go & splitter_test.go: Provides tools for splitting strings, supporting various splitting strategies and complex splitting scenarios, and their unit tests.
stringutil
  • strings.go & strings_test.go: Contains a series of utility functions for string operations, such as modifying, searching, comparing strings, and their unit tests.
timeutil
  • time_format.go & time_format_test.go: Provides utility functions related to time, including parsing and formatting time formats, and related unit tests.

version

  • base.go, doc.go, types.go, version.go: Version management tool, used for defining and managing project version information.

Directories

Path Synopsis
db
tx
log
file-rotatelogs
package rotatelogs is a port of File-RotateLogs from Perl (https://metacpan.org/release/File-RotateLogs), and it allows you to automatically rotate output files when you write to them according to the filename pattern that you can specify.
package rotatelogs is a port of File-RotateLogs from Perl (https://metacpan.org/release/File-RotateLogs), and it allows you to automatically rotate output files when you write to them according to the filename pattern that you can specify.
mq
mw
s3
cos
oss
system
utils

Jump to

Keyboard shortcuts

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