🍺 BREW Explorer

← all formulae

ifacemaker

brew install ifacemaker v1.3.0 Apache-2.0

Generate interfaces from structure methods

10
30-day installs · #8633
12
90-day · #11345
89
365-day · #9484
354
★ GitHub stars · updated 2mo ago

Runtime dependencies

go

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [
    "go"
  ],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Generate interfaces from structure methods",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:38:47+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "ifacemaker",
  "github_default_branch": "master",
  "github_last_commit_at": "2026-06-19T13:05:16Z",
  "github_readme_excerpt": "# ifacemaker\n\nThis is a development helper program that generates a Golang interface by inspecting\nthe structure methods of an existing `.go` file. The primary use case is to generate\ninterfaces for gomock, so that gomock can generate mocks from those interfaces. This\nmakes unit testing easier.\n\nThe tool understands Go generics and will correctly generate interfaces for generic\ntypes and methods.\n\n## Install\n\n```console\ngo install github.com/vburenin/ifacemaker@latest\n```\n\n## Usage\n\nHere is the help output of ifacemaker:\n\n```console\n$ ifacemaker --help\nUsage:\n  ifacemaker [OPTIONS]\n\nApplication Options:\n  -f, --file=           Go source file to read, either filename or glob\n  -s, --struct=         Generate an interface for this structure name\n  -i, --iface=          Name of the generated interface\n  -p, --pkg=            Package name for the generated interface\n  -P, --promoted        Include promoted methods from embedded structs\n  -y, --iface-comment=  Comment for the interface, default is \u0027// \u003ciface\u003e ...\u0027\n  -m, --import-module=  Fully qualified module import for packages with a different target package \u0027// \u003ciface\u003e ...\u0027\n  -e, --exclude-method= Name of method that will be excluded from output interface\n  -x, --not-exported    Include not exported methods\n  -d, --doc=            Copy docs from methods (default: true)\n  -D, --type-doc        Copy type doc from struct\n  -c, --comment=        Append comment to top, default is \u0027// Code generated by ifacemaker; DO NOT EDIT.\u0027\n  -o, --output=         Output file name. If not provided, result will be printed to stdout.\n\nHelp Options:\n  -h, --help            Show this help message\n$\n```\n\nAs an example, let\u0027s say you wanted to generate an interface for the Human structure\nin this sample code:\n\n```go\npackage main\n\nimport \"fmt\"\n\ntype Human struct {\n name string\n age  int\n}\n\n// Returns the name of our Human.\nfunc (h *Human) GetName() string {\n return h.name\n}\n\n// Our Human just had a birthday! Increase its age.\nfunc (h *Human) B",
  "github_repo": "vburenin/ifacemaker",
  "github_stars": 354,
  "github_topics": [],
  "homepage": "https://github.com/vburenin/ifacemaker",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 10,
  "installs_365d": 89,
  "installs_90d": 12,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "Apache-2.0",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "ifacemaker",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 8633,
  "rank_365d": 9484,
  "rank_90d": 11345,
  "raw_hash": "12db9e71a67144b5",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/i/ifacemaker.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": "HEAD",
  "version_stable": "1.3.0",
  "versioned_formulae": [],
  "why_use_this": null
}