{"id":41467761,"url":"https://github.com/liumingmin/goutils","last_synced_at":"2026-01-23T16:34:33.635Z","repository":{"id":40002085,"uuid":"156157843","full_name":"liumingmin/goutils","owner":"liumingmin","description":"websocket framework, algorithm, container, network utils. goal is to quickly build application-related auxiliary code libraries.​","archived":false,"fork":false,"pushed_at":"2025-11-06T08:30:04.000Z","size":24442,"stargazers_count":359,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-11-06T10:22:13.442Z","etag":null,"topics":["algorithm","container","golang","middleware","network","util","utils","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liumingmin.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":"2018-11-05T03:52:00.000Z","updated_at":"2025-11-06T08:30:09.000Z","dependencies_parsed_at":"2024-02-25T12:25:01.537Z","dependency_job_id":"0cfdce8b-66f4-4ecb-a957-e81a30c06b0d","html_url":"https://github.com/liumingmin/goutils","commit_stats":null,"previous_names":[],"tags_count":71,"template":false,"template_full_name":null,"purl":"pkg:github/liumingmin/goutils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumingmin%2Fgoutils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumingmin%2Fgoutils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumingmin%2Fgoutils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumingmin%2Fgoutils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liumingmin","download_url":"https://codeload.github.com/liumingmin/goutils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumingmin%2Fgoutils/sbom","scorecard":{"id":593667,"data":{"date":"2025-08-11","repo":{"name":"github.com/liumingmin/goutils","commit":"eca2ef7d8bfb8b726eca346d29ac083e7e5168f0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 1/29 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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codecov.yml:1","Warn: no topLevel permission defined: .github/workflows/go.yml:1","Info: no jobLevel write permissions found"],"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"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":"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":"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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: 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":"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":"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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/codecov.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/liumingmin/goutils/codecov.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codecov.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/liumingmin/goutils/codecov.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codecov.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/liumingmin/goutils/codecov.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/liumingmin/goutils/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/liumingmin/goutils/go.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 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":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","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"],"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-20T22:36:26.766Z","repository_id":40002085,"created_at":"2025-08-20T22:36:26.766Z","updated_at":"2025-08-20T22:36:26.766Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28695554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T15:57:05.722Z","status":"ssl_error","status_checked_at":"2026-01-23T15:56:27.656Z","response_time":59,"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":["algorithm","container","golang","middleware","network","util","utils","websocket"],"created_at":"2026-01-23T16:34:32.899Z","updated_at":"2026-01-23T16:34:33.627Z","avatar_url":"https://github.com/liumingmin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![gopher](gopher.png \"goutils\")\r\n\r\n\r\n[![Go](https://github.com/liumingmin/goutils/actions/workflows/go.yml/badge.svg)](https://github.com/liumingmin/goutils/actions/workflows/go.yml)\r\n[![Go Report Card](https://goreportcard.com/badge/github.com/liumingmin/goutils)](https://goreportcard.com/report/github.com/liumingmin/goutils)\r\n![Static Badge](https://img.shields.io/badge/staticcheck-passing-%2330a147)\r\n[![codecov](https://codecov.io/gh/liumingmin/goutils/graph/badge.svg?token=BQRDOY3CDX)](https://codecov.io/gh/liumingmin/goutils)\r\n![GitHub last commit](https://img.shields.io/github/last-commit/liumingmin/goutils)\r\n![GitHub Tag](https://img.shields.io/github/v/tag/liumingmin/goutils)\r\n![GitHub License](https://img.shields.io/github/license/liumingmin/goutils)\r\n\r\n**Read this in other languages: [English](README.md), [中文](README_zh.md).**\r\n\r\n# Introduction\r\n\r\nThis repository aims to provide Golang developers with a series of practical and easy-to-use tools to help them improve development efficiency and work efficiency. These tools cover various fields, including algorithm libraries, container libraries, storage tools, file processing, Http and Websocket networks, NoSql database access, etc.\r\n\r\n# Features\r\n- Solution positioning: Based on solving tedious tasks outside the microservice framework, it forms a differentiated complement with the development framework.\r\n- Easy to integrate: low connection, can be integrated with various projects, such as go-zero.\r\n- Function focus: The tool library theme implements tools for various common functions. In order to avoid reinventing the wheel without developing your own SQL ORM, make more use of the powerful ORM solutions of the open source community. Only by standing on the shoulders of giants can you go further.\r\n\r\n# Modules\r\n\r\n- [Algorithm Module](algorithm/README.md)\r\n    - Double circle buffer\r\n    - Crc16\r\n    - Descart combination\r\n    - Xor reader and writer\r\n- [Cache Module](cache/README.md)\r\n    - Generics-based function caching\r\n- [YAML Configuration Module](conf/README.md)\r\n- [Container Module](container/README.md)\r\n    - Bitmap\r\n    - Buffer pool\r\n    - Consistent hashing\r\n    - Generics-based sync pool\r\n    - Generics-based common lock wrapper\r\n    - Memory db struct\r\n    - Generics-based Queue\r\n    - Red Black Tree\r\n- [Database Module](db/README.md)\r\n    - Elasticsearch\r\n    - Kafka\r\n    - Mongo\r\n    - Redis\r\n- [Logging Library](log/README.md)\r\n    - Zap wrapper\r\n- [Network Library](net/README.md)\r\n    - Support Http1.x and 2.0 HttpClient\r\n    - Support Http1.x and 2.0 HttpServer    \r\n    - Ip utils\r\n    - Binary Net Packet Protocol\r\n    - Ssh proxy client\r\n- [General Utility Library](utils/README.md)\r\n    - CircuitBreaker\r\n    - Checksum utils\r\n    - Type convert utils\r\n    - Csv and MDB DataTable reader and writer\r\n    - Distributed lock\r\n    - Use gotest generate markdown document utils\r\n    - Finite state machine\r\n    - Http utils\r\n    - Email utils\r\n    - Safe goroutine\r\n    - Snowflake id generater\r\n    - Support timeout synchronous multi-call \r\n    - Window dll invoke\r\n    - UTF-8 encoding convert\r\n    - File utils\r\n    - Math utils\r\n    - Reflect utils\r\n    - String parser\r\n    - String utils\r\n    - Struct utils\r\n    - Struct tags utils\r\n- [WebSocket Client and Server Library](ws/README.md)\r\n    - Go Websocket client and server(100,000 concurrent 2.3G memory usage)\r\n    - Cpp Websocket client     \r\n    - Ts Websocket client \r\n    - Js Websocket client\r\n\r\n# Roadmap\r\n\r\n## Objective:\r\n\r\n* Build a high-quality, high-performance Golang project\r\n* Enhance project visibility and influence\r\n\r\n## Phase Breakdown:\r\n\r\n### Phase 1: Foundation Establishment\r\n\r\n* **Goal:** Ensure code quality and establish a solid foundation\r\n* **Key Metrics:**\r\n    - [x] All code is tested with `go test` and `codecover` \r\n    - [x] GitHub Star exceeds 200\r\n* **Tasks:**\r\n    - [x] Write unit tests and integration tests to ensure code functionality\r\n    - [x] Utilize the `codecover` tool to measure code coverage and continuously improve it\r\n    - [x] Compose clear project documentation and README files\r\n\r\n### Phase 2: Performance Optimization and Expansion\r\n\r\n* **Goal:** Elevate project performance and scalability\r\n* **Key Metrics:**\r\n    * [x] Major code undergoes performance testing and meets performance expectations\r\n    * [x] Code coverage for all code surpasses 80%\r\n    * GitHub Star exceeds 500\r\n* **Tasks:**\r\n    * [x] Identify performance bottlenecks and implement targeted optimizations\r\n    * [x] Employ load testing tools to evaluate project performance and make continuous improvements\r\n    * [x] Refine code structure and design to enhance code maintainability and extensibility\r\n    * [x] Release new versions and document version change logs\r\n\r\n### Phase 3: Community Operation and Promotion\r\n\r\n* **Goal:** Grow the project community and expand project influence\r\n* **Key Metrics:**\r\n    * GitHub Star exceeds 1000\r\n    * Establish an independent official website\r\n    * Actively participate in open-source community events\r\n* **Tasks:**\r\n    * Set up community communication platforms, such as forums or Discord\r\n    * Organize online and offline technical exchange events to share project experiences\r\n    * Write blog posts, technical tutorials, etc., to disseminate project knowledge\r\n    * Actively participate in relevant open-source conferences and events to promote the project","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliumingmin%2Fgoutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliumingmin%2Fgoutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliumingmin%2Fgoutils/lists"}