https://github.com/openimsdk/tools
https://github.com/openimsdk/tools
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/openimsdk/tools
- Owner: openimsdk
- License: apache-2.0
- Created: 2023-07-25T02:38:53.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-12T06:58:36.000Z (4 months ago)
- Last Synced: 2026-02-12T16:19:58.263Z (4 months ago)
- Language: Go
- Size: 2.18 MB
- Stars: 22
- Watchers: 1
- Forks: 91
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
openim-tools
⭐️ OpenIM tools. ⭐️
----
## 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](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.