{"adoption": {"forks": 202, "observed_at": "2026-08-28T04:06:40.856106+00:00", "stars": 2360}, "canonical_url": "https://ross.abutalabs.com/products/goutil", "card": {"archived": false, "artifact_type": "library", "description": "💪 Helper Utils(900+): int, byte, string, array/slice, map, struct, dump, convert/format, error, web/http, cli/flag, OS/ENV, filesystem, system, test/assert, time and more. Go 常用的工具函数：数字，字符串，数组，Map，结构体，反射，文本，文件，错误，时间日期，特殊处理，格式化，常用信息获取等等", "domain": ["developer-tools"], "enriched": true, "function": ["developer-tools", "serialization", "logging", "testing", "cli", "error-handling", "file-system", "date-time", "math"], "health_score": 98, "homepage": "https://zread.ai/gookit/goutil", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["gookit/goutil"], "name": "gookit/goutil", "platform": ["go", "cross-platform", "cli"], "pushed_at": "2026-08-17T14:52:38+00:00", "repo": "gookit/goutil", "stars": 2360, "tags": ["go-library", "utilities", "string-utils", "slice-utils", "map-utils", "struct-utils", "reflection", "env-vars", "dump", "assert", "cli-flags", "ansi-colors", "command-line", "automation"], "topics": ["utils", "go-library", "tools", "strings", "cli-utilities", "dumper", "golang", "utilities", "go-utils", "string", "errors", "go-errors", "time-format", "casting", "converter", "environments", "filesystem", "system-utils", "go-flags", "testing-tools"], "urls": [], "use_cases": ["manipulate and convert strings in go", "convert between int, string, and byte types", "merge and query nested maps", "dump go variables for debugging", "wrap errors with stack traces", "build simple command line apps with flags", "read and write files quickly", "mock env values in tests"], "what_it_is": "goutil is a Go utility library providing 900+ helper functions across packages for strings, arrays, maps, structs, reflection, errors, time, filesystem, environment, CLI, and testing. It includes extras like a value dumper, enhanced error wrapping with stacktraces, assertion helpers, and a flag wrapper for building simple CLI apps.", "when_to_avoid": ["you prefer minimal, single-purpose dependencies", "you need a framework for complex CLI apps rather than simple flag handling", "your project avoids reflection-heavy utility libraries"], "when_to_choose": ["you want a batteries-included stdlib-style utility set for Go", "you need many small helpers (strings, slices, maps, fs, env) from one dependency", "you want enhanced error wrapping, dumping, or test assertions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/goutil", "repo": "gookit/goutil", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.856106+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:36:08.360438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57507f8a281d62ae922cb3236f9b367abd967c809ec610d891456d6f28716f94", "fetched_at": "2026-08-28T04:06:40.856106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gookit/goutil"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 78}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2983, "days_push": 16, "days_rel": 69, "gap_med": 53, "n_releases_24m": 10}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}