pkg.soopen package index

brew / rank 8579

Install ifacemaker with Homebrew

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

install

Additional install commands

macOS

Homebrewverified · 100%
brew install ifacemaker

local Homebrew formula metadata

overview

Package summary

Generate interfaces from structure methods

Commands and aliases

  • ifacemaker

history

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.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
ifacemakerexecutableindexed executableDiscovered from the local executable index.

freshness

Version and 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.

page generated2026-08-03
manager version1.4.0
manager updated2026-07-26
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:ifacemaker
Version1.4.0
Package managerHomebrew
Homepagehttps://github.com/vburenin/ifacemaker
Repositoryhttps://github.com/vburenin/ifacemaker
Last updated2026-07-26T04:07:47+02:00
Pulseupdated
Bottlenot recorded
Servicenone declared

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • cross-ecosystem install command graph
  • curated package history
  • pkg.so package database
  • pkgdb category and tag curation