# Install ifacemaker with Homebrew

Generate interfaces from structure methods. Version 1.4.0 via Homebrew; verified 2026-06-26.

## Install

```sh
sudo av install brew:ifacemaker
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install ifacemaker
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:ifacemaker
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/ifacemaker>
- **Version:** 1.4.0
- **Source summary:** Generate interfaces from structure methods
- **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
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ifacemaker (cli)
- ifacemaker (alias)

## Dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.4.0
- Package-manager updated: 2026-06-26
- Local data: ok
- Upstream repository: https://github.com/vburenin/ifacemaker
- Upstream latest detected: v1.4.0 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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.

### Timeline

- 2018-12-05: v1.0.0 tag is recorded in the repository.
- 2019-08-02: v1.1.0 tag adds usability improvements around command-line use.
- 2023-05-09: v1.2.1 tag is recorded.
- 2025-04-03: v1.3.0 tag is recorded.
- 2026-06-26: v1.4.0 tag is recorded.

### Related projects

- gomock is the primary related project named by the README.
- Other Go interface generators, mock generators, and go/ast-based developer tools occupy the same tooling neighborhood.

### Sources

- <https://formulae.brew.sh/formula/ifacemaker>
- <https://github.com/vburenin/ifacemaker>
- <https://github.com/vburenin/ifacemaker/releases>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **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:** head, stable


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Runtime dependency declared by Homebrew.
- [counterfeiter](https://www.automicvault.com/pkg/brew/counterfeiter/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go, testing.
- [mockery](https://www.automicvault.com/pkg/brew/mockery/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go, testing.
- [go-bindata](https://www.automicvault.com/pkg/brew/go-bindata/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [goctl](https://www.automicvault.com/pkg/brew/goctl/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [gomodifytags](https://www.automicvault.com/pkg/brew/gomodifytags/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [gotests](https://www.automicvault.com/pkg/brew/gotests/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go, testing.
- [gowsdl](https://www.automicvault.com/pkg/brew/gowsdl/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.
- [hz](https://www.automicvault.com/pkg/brew/hz/) - Shares av.db curated category or tags: cli, code-generation, developer-tools, go.

## Combined YAML source

View the package source record on GitHub. [combined/ifacemaker.yml](https://github.com/automic-vault/db/blob/main/combined/ifacemaker.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- cross-ecosystem install command graph
