github.com/openimsdk/tools@v0.0.49/README_zh-CN.md (about) 1 <h1 align="center" style="border-bottom: none"> 2 <b> 3 <a href="https://docs.openim.io">tools</a><br> 4 </b> 5 </h1> 6 <h3 align="center" style="border-bottom: none"> 7 ⭐️ OpenIM tools. ⭐️ <br> 8 <h3> 9 10 11 <p align=center> 12 <a href="https://goreportcard.com/report/github.com/openimsdk/tools"><img src="https://goreportcard.com/badge/github.com/openimsdk/tools" alt="A+"></a> 13 <a href="https://github.com/openimsdk/tools/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22"><img src="https://img.shields.io/github/issues/openimsdk/tools/good%20first%20issue?logo=%22github%22" alt="good first"></a> 14 <a href="https://github.com/openimsdk/tools"><img src="https://img.shields.io/github/stars/openimsdk/tools.svg?style=flat&logo=github&colorB=deeppink&label=stars"></a> 15 <a href="https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q"><img src="https://img.shields.io/badge/Slack-100%2B-blueviolet?logo=slack&logoColor=white"></a> 16 <a href="https://github.com/openimsdk/tools/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green"></a> 17 <a href="https://pkg.go.dev/github.com/openimsdk/tools"><img src="https://img.shields.io/badge/Language-Go-blue.svg"></a> 18 </p> 19 20 <p align="center"> 21 <a href="./README.md"><b>English</b></a> • 22 <a href="./README_zh-CN.md"><b>中文</b></a> 23 </p> 24 25 </p> 26 27 ---- 28 29 # 项目工具集说明文档 30 31 本项目包含了一系列适用于 OpenIM 通用工具和库以及一些其他的项目提供工具支持,旨在支持高效方案开发。以下是各个模块的功能介绍: 32 33 ## a2r 34 35 - `api2rpc.go`:API 到 RPC 的转换工具,用于将 HTTP API 请求转换为 RPC 调用。 36 37 ## apiresp 38 39 - `format.go`, `gin.go`, `http.go`, `resp.go`:处理 API 响应的格式化、封装及发送,支持不同的Web框架。 40 41 ## checker 42 43 - `check.go`:提供服务健康检查和依赖项验证功能。 44 45 ## config 46 47 - `config.go`, `config_parser.go`, `config_source.go`, `manager.go`, `path.go`:配置管理模块,支持配置的解析、加载及动态更新。 48 - `validation`:提供配置验证的工具和库。 49 50 ## db 51 52 - `mongo`, `pagination`, `redis`, `tx.go`:数据库操作相关的工具,包括 MongoDB、Redis 的支持和事务管理。 53 54 ## discovery 55 56 - `discovery_register.go`:服务发现与注册功能。 57 - `zookeeper`:基于 Zookeeper 的服务发现实现。 58 59 ## env 60 61 - `env.go`, `env_test.go`:环境变量管理工具,包括加载和解析环境变量。 62 63 ## errs 64 65 - `code.go`, `coderr.go`, `error.go`, `predefine.go`, `relation.go`:错误码管理和自定义错误类型。 66 67 ## field 68 69 - `file.go`, `path.go`:处理文件操作和路径生成的实用工具。 70 - 相关的测试文件。 71 72 ## log 73 74 - `color.go`, `encoder.go`, `logger.go`, `sql_logger.go`, `zap.go`, `zk_logger.go`:日志管理模块,支持多种日志格式和输出。 75 76 > [!IMPORTANT] 77 > 关于 OpenIM log 可以阅读 [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) 78 79 ## mcontext 80 81 - `ctx.go`:上下文管理工具,用于在中间件和服务之间传递请求相关的信息。 82 83 ## mq 84 85 - `kafka`:基于 Kafka 的消息队列支持。 86 87 ## mw 88 89 - `gin.go`, `intercept_chain.go`, `rpc_client_interceptor.go`, `rpc_server_interceptor.go`:中间件和拦截器,用于处理请求的预处理和后处理。 90 - `specialerror`:特殊错误处理模块。 91 92 ## tokenverify 93 94 - `jwt_token.go`, `jwt_token_test.go`:JWT 令牌验证和测试。 95 96 ## utils 97 98 utils 包含多个工具库,如 `encoding`, `encrypt`, `httputil`, `jsonutil`, `network`, `splitter`, `stringutil`, `timeutil`:提供各种常用功能,例如加密、编码、网络操作等。 99 100 #### encoding 101 102 - `base64.go` & `base64_test.go`:提供 Base64 编码和解码的实用函数,及其单元测试。 103 104 #### encrypt 105 106 - `encryption.go` & `encryption_test.go`:包含加密和解密的功能实现,支持常见的加密算法,以及相关的单元测试。 107 108 #### goassist 109 110 - `jsonutils.go` & `jsonutils_test.go`:提供 JSON 数据处理的实用函数,如解析和生成 JSON,以及相关的单元测试。 111 112 #### httputil 113 114 - `http_client.go` & `http_client_test.go`:封装 HTTP 客户端的操作,提供便捷的 HTTP 请求发送方法,及其单元测试。 115 116 #### jsonutil 117 118 - `interface.go`, `json.go` & `json_test.go`:专注于 JSON 数据处理,包括更高级的 JSON 操作和定制化的 JSON 解析方法,及其单元测试。 119 120 #### network 121 122 - `ip.go` & `ip_test.go`:提供网络相关的实用函数,如 IP 地址的解析和验证,以及相关的单元测试。 123 124 #### splitter 125 126 - `splitter.go` & `splitter_test.go`:提供字符串分割的工具,支持多种分割策略和复杂的分割场景,及其单元测试。 127 128 #### stringutil 129 130 - `strings.go` & `strings_test.go`:包含一系列字符串操作的实用函数,如字符串的修改、搜索、比较等,及其单元测试。 131 132 #### timeutil 133 134 - `time_format.go` & `time_format_test.go`:提供与时间相关的实用函数,包括时间格式的解析和格式化,以及相关的单元测试。 135 136 ## version 137 138 - `base.go`, `doc.go`, `types.go`, `version.go`:版本管理工具,用于定义和管理项目版本信息。