{"adoption": {"forks": 369, "observed_at": "2026-08-28T04:09:27.355187+00:00", "stars": 5659}, "canonical_url": "https://ross.abutalabs.com/products/garble", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Obfuscate Go builds", "domain": ["security", "developer-tools", "programming-languages"], "enriched": true, "function": ["build-tool", "security", "compiler", "developer-tools"], "health_score": 100, "homepage": null, "language": "Go", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["burrowers/garble"], "name": "burrowers/garble", "platform": ["go", "cli", "cross-platform"], "pushed_at": "2026-08-25T10:50:02+00:00", "repo": "burrowers/garble", "stars": 5659, "tags": ["obfuscation", "reverse-engineering-protection", "go-toolchain", "binary-hardening", "command-line"], "topics": ["golang", "obfuscation", "build", "code-obfuscator", "binary"], "urls": [], "use_cases": ["obfuscate a Go binary before distributing it to end users", "prevent reverse engineering of a proprietary Go application", "share obfuscated source code of a private Go library", "reduce Go binary size with the -tiny flag", "de-obfuscate panic stack traces from obfuscated builds", "remove build and debug metadata from Go binaries"], "what_it_is": "Garble is a CLI tool that obfuscates Go binaries by wrapping the Go toolchain's compiler and linker. It replaces identifiers, package paths, and position information with hashed values, and can strip build, module, and debug information.", "when_to_avoid": ["you need strong protection against determined attackers, since obfuscation only discourages reverse engineering", "your code relies heavily on reflection or runtime name inspection that obfuscation may break", "you build libraries consumed by others who need readable source", "you are not using Go"], "when_to_choose": ["you distribute compiled Go binaries whose source is private or commercial", "you want deterministic, reproducible obfuscated builds integrated with the standard go toolchain", "you need to reverse obfuscated stack traces back to readable ones", "you want smaller Go binaries by stripping extra runtime information"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/garble", "repo": "burrowers/garble", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "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:09:27.355187+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.355187+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:54:20.733203+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "083d375ca687e9ee1e291ffd02ce6641fdc52240c0f36c943d8409e4e4d78f32", "fetched_at": "2026-08-28T04:09:27.355187+00:00", "kind": "readme", "missing": false, "url": "https://github.com/burrowers/garble"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 71}, "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": 2460, "days_push": 8, "days_rel": 38, "gap_med": 121.5, "n_releases_24m": 7}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}