🍺 BREW Explorer

← all formulae

garble

brew install garble v0.16.0_2 BSD-3-Clause

Obfuscate Go builds

28
30-day installs · #5918
97
90-day · #5633
499
365-day · #5118
5.6k
★ GitHub stars · updated 2mo ago

Build dependencies

go

GitHub topics

binary build code-obfuscator golang obfuscation

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "go"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Obfuscate Go builds",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:37:54+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "garble",
  "github_default_branch": "master",
  "github_last_commit_at": "2026-06-08T13:03:40Z",
  "github_readme_excerpt": "# garble\n\n\tgo install mvdan.cc/garble@latest # or @master\n\nObfuscate Go code by wrapping the Go toolchain. Requires Go 1.26 or later.\n\n\tgarble build [build flags] [packages]\n\nThe tool also supports `garble test` to run tests with obfuscated code,\n`garble run` to obfuscate and execute simple programs,\n`garble reverse` to de-obfuscate text such as stack traces,\nand `garble bug` to file a pre-filled bug report.\nRun `garble -h` to see all available commands and flags.\n\n### Purpose\n\nProduce a binary that works as well as a regular build, but that has as little\ninformation about the original source code as possible.\n\nThe tool is designed to be:\n\n* Coupled with `cmd/go`, to support modules and build caching\n* Deterministic and reproducible, given the same initial source code\n* Reversible given the original source, to de-obfuscate panic stack traces\n\n### Mechanism\n\nThe tool wraps calls to the Go compiler and linker to transform the Go build, in\norder to:\n\n* Replace identifiers and package paths with short base64 hashes\n* Replace position information with short base64 hashed filenames\n* Remove all [build](https://go.dev/pkg/runtime/#Version), [module](https://go.dev/pkg/runtime/debug/#ReadBuildInfo), and debug information\n* [Obfuscate literals](#literal-obfuscation), if the `-literals` flag is given\n* Remove [extra information](#tiny-mode), if the `-tiny` flag is given\n\nBy default, the tool obfuscates all the packages being built.\nYou can manually specify which packages to obfuscate via `GOGARBLE`,\na comma-separated list of glob patterns matching package path prefixes.\nThis format is borrowed from `GOPRIVATE`; see `go help private`.\n\nNote that commands like `garble build` will use the `go` version found in your\n`$PATH`. To use different versions of Go, you can [use `GOTOOLCHAIN`](https://go.dev/doc/toolchain).\n\n### Use cases\n\nA common question is why a code obfuscator is needed for Go, a compiled language.\nGo binaries include a surprising amount of information about the orig",
  "github_repo": "burrowers/garble",
  "github_stars": 5560,
  "github_topics": [
    "binary",
    "build",
    "code-obfuscator",
    "golang",
    "obfuscation"
  ],
  "homepage": "https://github.com/burrowers/garble",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 28,
  "installs_365d": 499,
  "installs_90d": 97,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "BSD-3-Clause",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "garble",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 5918,
  "rank_365d": 5118,
  "rank_90d": 5633,
  "raw_hash": "5df81f49a9280281",
  "recommended_dependencies": [],
  "revision": 2,
  "ruby_source_path": "Formula/g/garble.rb",
  "tap": "homebrew/core",
  "test_dependencies": [
    "go"
  ],
  "uses_from_macos": [],
  "version_head": "HEAD",
  "version_stable": "0.16.0",
  "versioned_formulae": [],
  "why_use_this": null
}