{"id":35194359,"url":"https://github.com/openimsdk/tools","last_synced_at":"2026-03-13T05:02:55.466Z","repository":{"id":183650721,"uuid":"670418179","full_name":"openimsdk/tools","owner":"openimsdk","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-12T06:58:36.000Z","size":2289,"stargazers_count":22,"open_issues_count":10,"forks_count":91,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-12T16:19:58.263Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openimsdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-25T02:38:53.000Z","updated_at":"2026-02-12T06:58:40.000Z","dependencies_parsed_at":"2023-07-25T09:44:04.623Z","dependency_job_id":"ef59195a-f84b-4c0e-a5f1-38c1a7e6a637","html_url":"https://github.com/openimsdk/tools","commit_stats":null,"previous_names":["openimsdk/tools"],"tags_count":289,"template":false,"template_full_name":null,"purl":"pkg:github/openimsdk/tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Ftools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Ftools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Ftools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Ftools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openimsdk","download_url":"https://codeload.github.com/openimsdk/tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openimsdk%2Ftools/sbom","scorecard":{"id":640564,"data":{"date":"2025-08-11","repo":{"name":"github.com/openimsdk/tools","commit":"8eb487e65388ea304c11f1b90b6c4b4b0c929b06"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/21 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"25 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.event.pull_request.body ': .github/workflows/auto-gh-pr.yml:35","Warn: script injection with untrusted input ' github.event.comment.body ': .github/workflows/auto-tag.yml:33"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: found token with 'none' permissions: .github/workflows/milestone.yml:38","Info: found token with 'none' permissions: .github/workflows/milestone.yml:30","Info: found token with 'none' permissions: .github/workflows/milestone.yml:33","Info: found token with 'none' permissions: .github/workflows/milestone.yml:37","Info: found token with 'none' permissions: .github/workflows/milestone.yml:39","Info: found token with 'none' permissions: .github/workflows/milestone.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/milestone.yml:32","Info: found token with 'none' permissions: .github/workflows/milestone.yml:35","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/openimci.yaml:36","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-drafter.yml:37","Warn: no topLevel permission defined: .github/workflows/auto-assign-issue.yml:1","Warn: no topLevel permission defined: .github/workflows/auto-gh-pr.yml:1","Warn: no topLevel permission defined: .github/workflows/auto-invite.yml:1","Warn: no topLevel permission defined: .github/workflows/auto-tag.yml:1","Warn: no topLevel permission defined: .github/workflows/bot-auto-cherry-pick.yml:1","Warn: no topLevel permission defined: .github/workflows/bot-cherry-pick.yml:1","Warn: topLevel 'actions' permission set to 'write': .github/workflows/cla.yml:24","Warn: topLevel 'contents' permission set to 'write': .github/workflows/cla.yml:25","Warn: topLevel 'statuses' permission set to 'write': .github/workflows/cla.yml:27","Warn: no topLevel permission defined: .github/workflows/code-language-detector.yml:1","Warn: no topLevel permission defined: .github/workflows/go-typecheck.yml:1","Warn: no topLevel permission defined: .github/workflows/golangci-lint.yml:1","Warn: no topLevel permission defined: .github/workflows/gosec.yml:1","Warn: no topLevel permission defined: .github/workflows/link-pr.yml:1","Warn: no topLevel permission defined: .github/workflows/milestone.yml:1","Warn: no topLevel permission defined: .github/workflows/openimci.yaml:1","Warn: no topLevel permission defined: .github/workflows/project-progress.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/pull-request.yml:22","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-drafter.yml:31"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-assign-issue.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/auto-assign-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-gh-pr.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/auto-gh-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-invite.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/auto-invite.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-invite.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/auto-invite.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/auto-tag.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/auto-tag.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bot-auto-cherry-pick.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/bot-auto-cherry-pick.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/bot-cherry-pick.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/bot-cherry-pick.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/bot-cherry-pick.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/bot-cherry-pick.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cla.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/cla.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/code-language-detector.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/code-language-detector.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/code-language-detector.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/code-language-detector.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go-typecheck.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/go-typecheck.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/go-typecheck.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/go-typecheck.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/golangci-lint.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/golangci-lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/golangci-lint.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/golangci-lint.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/golangci-lint.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/golangci-lint.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gosec.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/gosec.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gosec.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/gosec.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/link-pr.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/link-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/link-pr.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/link-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/link-pr.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/link-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lock-issue.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/lock-issue.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/milestone.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/milestone.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/openimci.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/openimci.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/openimci.yaml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/openimci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/openimci.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/openimci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/project-progress.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/project-progress.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-request.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/pull-request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-request.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/pull-request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull-request.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/pull-request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull-request.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/pull-request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-drafter.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/openimsdk/tools/release-drafter.yml/main?enable=pin","Warn: goCommand not pinned by hash: utils/mageutil/usage-guide/bootstrap.sh:12","Info:   0 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  15 third-party GitHubAction dependencies pinned","Info:   0 out of   1 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found linked content: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/openimsdk/.github/.github/SECURITY.md:1","Info: Found text in security policy: github.com/openimsdk/.github/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'","Warn: branch protection not enabled for branch 'v50_72_1'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 23 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"14 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-3250 / GHSA-29wx-vh33-7x7r","Warn: Project is vulnerable to: GO-2025-3553 / GHSA-mh63-6h87-95cp","Warn: Project is vulnerable to: GO-2025-3540","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-2937 / GHSA-9phm-fm57-rhg8","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2024-2456 / GHSA-449p-3h89-pw88","Warn: Project is vulnerable to: GO-2024-2466 / GHSA-mw99-9chc-xw7r","Warn: Project is vulnerable to: GO-2025-3367 / GHSA-r9px-m959-cxf4","Warn: Project is vulnerable to: GO-2025-3368 / GHSA-v725-9546-7q7m"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T10:35:28.321Z","repository_id":183650721,"created_at":"2025-08-21T10:35:28.321Z","updated_at":"2025-08-21T10:35:28.321Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-29T06:47:01.987Z","updated_at":"2026-03-13T05:02:55.458Z","avatar_url":"https://github.com/openimsdk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"border-bottom: none\"\u003e\n    \u003cb\u003e\n        \u003ca href=\"https://docs.openim.io\"\u003eopenim-tools\u003c/a\u003e\u003cbr\u003e\n    \u003c/b\u003e\n\u003c/h1\u003e\n\u003ch3 align=\"center\" style=\"border-bottom: none\"\u003e\n      ⭐️  OpenIM tools.  ⭐️ \u003cbr\u003e\n\u003ch3\u003e\n\n\n\u003cp align=center\u003e\n\u003ca href=\"https://goreportcard.com/report/github.com/openimsdk/tools\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/openimsdk/tools\" alt=\"A+\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/tools/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/openimsdk/tools/good%20first%20issue?logo=%22github%22\" alt=\"good first\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/tools\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/openimsdk/tools.svg?style=flat\u0026logo=github\u0026colorB=deeppink\u0026label=stars\"\u003e\u003c/a\u003e\n\u003ca href=\"https://join.slack.com/t/openimsdk/shared_invite/zt-22720d66b-o_FvKxMTGXtcnnnHiMqe9Q\"\u003e\u003cimg src=\"https://img.shields.io/badge/Slack-100%2B-blueviolet?logo=slack\u0026amp;logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/openimsdk/tools/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache--2.0-green\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pkg.go.dev/github.com/openimsdk/tools\"\u003e\u003cimg src=\"https://img.shields.io/badge/Language-Go-blue.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"./README.md\"\u003e\u003cb\u003eEnglish\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"./README_zh-CN.md\"\u003e\u003cb\u003e中文\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/p\u003e\n\n----\n\n## Project Toolkit Documentation\n\nThis 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:\n\n## a2r\n\n- `api2rpc.go`: A tool for converting API to RPC, used for converting HTTP API requests into RPC calls.\n\n## apiresp\n\n- `format.go`, `gin.go`, `http.go`, `resp.go`: Handles the formatting, encapsulation, and sending of API responses, supporting different web frameworks.\n\n## checker\n\n- `check.go`: Provides service health checks and dependency verification functions.\n\n## config\n\n- `config.go`, `config_parser.go`, `config_source.go`, `manager.go`, `path.go`: Configuration management module, supporting the parsing, loading, and dynamic updating of configurations.\n- `validation`: Provides tools and libraries for configuration validation.\n\n## db\n\n- `mongo`, `pagination`, `redis`, `tx.go`: Database operation-related tools, including support for MongoDB, Redis, and transaction management.\n\n## discovery\n\n- `discovery_register.go`: Service discovery and registration functions.\n- `zookeeper`: Service discovery implementation based on Zookeeper.\n\n## env\n\n- `env.go`, `env_test.go`: Environment variable management tools, including loading and parsing environment variables.\n\n## errs\n\n- `code.go`, `coderr.go`, `error.go`, `predefine.go`, `relation.go`: Error code management and custom error types.\n\n## field\n\n- `file.go`, `path.go`: Utilities for file operations and path generation.\n- Related test files.\n\n## log\n\n- `color.go`, `encoder.go`, `logger.go`, `sql_logger.go`, `zap.go`, `zk_logger.go`: Log management module, supporting multiple log formats and outputs.\n\n\u003e [!IMPORTANT]\n\u003e 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)\n\n## mcontext\n\n- `ctx.go`: Context management tool, used for passing request-related information between middleware and services.\n\n## mq\n\n- `kafka`: Support for message queues based on Kafka.\n\n## mw\n\n- `gin.go`, `intercept_chain.go`, `rpc_client_interceptor.go`, `rpc_server_interceptor.go`: Middleware and interceptors, used for preprocessing and postprocessing of requests.\n- `specialerror`: Special error handling module.\n\n## tokenverify\n\n- `jwt_token.go`, `jwt_token_test.go`: JWT token verification and testing.\n\n## utils\n\nThe 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.\n\n#### encoding\n\n- `base64.go` \u0026 `base64_test.go`: Provides utility functions for Base64 encoding and decoding, and their unit tests.\n\n#### encrypt\n\n- `encryption.go` \u0026 `encryption_test.go`: Contains functionalities for encryption and decryption, supporting common encryption algorithms, and related unit tests.\n\n#### goassist\n\n- `jsonutils.go` \u0026 `jsonutils_test.go`: Provides utility functions for handling JSON data, such as parsing and generating JSON, and related unit tests.\n\n#### httputil\n\n- `http_client.go` \u0026 `http_client_test.go`: Encapsulates HTTP client operations, providing convenient methods for sending HTTP requests, and their unit tests.\n\n#### jsonutil\n\n- `interface.go`, `json.go` \u0026 `json_test.go`: Focuses on JSON data handling, including more advanced JSON operations and customized JSON parsing methods, and their unit tests.\n\n#### network\n\n- `ip.go` \u0026 `ip_test.go`: Provides network-related utility functions, such as parsing and validating IP addresses, and related unit tests.\n\n#### splitter\n\n- `splitter.go` \u0026 `splitter_test.go`: Provides tools for splitting strings, supporting various splitting strategies and complex splitting scenarios, and their unit tests.\n\n#### stringutil\n\n- `strings.go` \u0026 `strings_test.go`: Contains a series of utility functions for string operations, such as modifying, searching, comparing strings, and their unit tests.\n\n#### timeutil\n\n- `time_format.go` \u0026 `time_format_test.go`: Provides utility functions related to time, including parsing and formatting time formats, and related unit tests.\n\n## version\n\n- `base.go`, `doc.go`, `types.go`, `version.go`: Version management tool, used for defining and managing project version information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Ftools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenimsdk%2Ftools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenimsdk%2Ftools/lists"}