macOS
brew install ifacemakerlocal Homebrew formula metadata
brew
Generate interfaces from structure methods. Version 1.4.0 via Homebrew; verified 2026-06-26.
install
brew install ifacemakerlocal Homebrew formula metadata
overview
Generate interfaces from structure methods
history
ifacemaker is a small Go code-generation helper that reads methods from a concrete struct and emits a Go interface. Its README identifies gomock support as the primary use case: generate the interface first, then let gomock generate mocks from that interface.
The project is not a broad framework. Its significance is that it automates a repetitive Go testing chore while staying close to ordinary Go source files and command-line workflows.
The repository's tagged releases start at v1.0.0 in 2018, after the release notes describe it as already working in CI/CD for over a year. Later tags add usability improvements, glob handling, struct-handling fixes, and support for newer Go language features.
The README documents support for Go generics and generic methods, showing that the tool evolved alongside Go's type system rather than remaining limited to pre-generics code.
ifacemaker's adoption appears concentrated among Go teams that use gomock or similar test doubles and want interfaces derived from existing concrete types. It is packaged in Homebrew and installable with go install, but its user base is naturally bounded by one Go testing workflow.
The project also has downstream influence in adjacent tools: interface generators in the Go ecosystem cite it as an inspiration because it covers a common friction point in Go's explicit-interface style.
Users point ifacemaker at a Go source file, name the struct, choose the interface name and package, and either print the generated interface or write it to a file. Options cover output file selection, promoted methods, excluded methods, unexported methods, copied documentation, and generated-file comments.
The practical workflow is to keep production code concrete, generate a narrow interface for tests, and feed that interface into a mock generator.
ifacemaker is package-nerd interesting because it is a tiny CLI around one awkward edge of Go culture: interfaces are satisfied implicitly, but tests often need explicit interface declarations.
It also shows how language-specific codegen tools get packaged as normal Unix commands, making a Go AST workflow available from shell scripts, CI jobs, and Homebrew.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
ifacemaker | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/vburenin/ifacemaker
install metadata
| Package key | brew:ifacemaker |
|---|---|
| Version | 1.4.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/ifacemaker |
| Homepage | https://github.com/vburenin/ifacemaker |
| Repository | https://github.com/vburenin/ifacemaker |
| Upstream docs | https://github.com/vburenin/ifacemaker#readme |
| License | Apache-2.0 |
| Source archive | https://github.com/vburenin/ifacemaker/archive/refs/tags/v1.4.0.tar.gz |
| Last updated | 2026-06-26T23:59:04Z |
| Pulse | updated |
| Dependencies | go |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | ifacemaker |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.