whatisgithub

What is impl?

eternal-flame-ad/impl — explained in plain English

Analysis updated 2026-07-18 · repo last pushed 2019-02-01

GoAudience · developerComplexity · 2/5DormantSetup · easy

In one sentence

A command-line tool for Go that automatically generates empty function templates required by interfaces, saving programmers from typing repetitive boilerplate code by hand.

Mindmap

mindmap
  root((repo))
    What it does
      Generates function templates
      Fills with not-implemented markers
      Saves typing boilerplate
    How it works
      Specify target type
      Pick an interface
      Outputs empty functions
    Use cases
      Custom data sources
      Large library integration
      Authentication systems
    Audience
      Go programmers
      Vim users
    Setup
      Command-line tool
      Vim plugin available

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Generate function stubs for a custom data source connecting to an auth system.

USE CASE 2

Quickly scaffold code required by large complex libraries without looking up signatures.

USE CASE 3

Create interface implementations directly inside Vim without switching tools.

What is it built with?

GoCLIVim

How does it compare?

eternal-flame-ad/implaasheeshlikepanner/vasealexzielenski/controller-runtime
Stars0
LanguageGoGoGo
Last pushed2019-02-012022-04-20
MaintenanceDormantDormant
Setup difficultyeasymoderatehard
Complexity2/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

So what is it?

impl is a small command-line tool for Go programmers that saves them from typing out repetitive boilerplate code. When you need to make a new piece of code work with an existing system, you often have to write a set of required functions. This tool automatically generates those empty function templates for you, so you can jump straight into writing the actual logic. In Go, an "interface" is basically a checklist of functions that a piece of data must support. For example, if your code needs to act like a file, it needs to provide Read, Write, and Close functions. Instead of manually typing out each of those function signatures and remembering the exact names and types they require, you run a quick command telling the tool what you are building and which checklist it needs to satisfy. It then spits out the complete set of empty functions, each filled with a temporary "not implemented" marker so your code compiles correctly while you fill in the details. This is designed for developers working in Go who want to move faster and avoid typos. For instance, if a programmer is building a custom data source that needs to connect to an authentication system, they can use this tool to instantly generate the exact function structure required by that system. It is also handy for anyone integrating with large, complex libraries where looking up the exact required function signatures would be tedious. The project is straightforward and does one specific job without unnecessary complexity. The README is sparse and doesn't go into detail about advanced configuration or tradeoffs, but it does note that the tool can be used directly from the Vim text editor through a companion plugin. This means developers can generate these code templates without even leaving their writing environment.

Copy-paste prompts

Prompt 1
Help me install the impl Go tool and use it to generate function stubs for the io.ReadWriteCloser interface for a struct called MyFile.
Prompt 2
Show me how to set up the Vim plugin for impl so I can generate interface methods without leaving my editor.
Prompt 3
I have a Go struct called UserStore that needs to implement an interface called Store with Get, Put, and Delete methods. Generate the impl command to create those stubs.
Prompt 4
Explain how to use impl to scaffold all methods required by the fmt.Stringer interface for multiple struct types in my project.

Frequently asked questions

What is impl?

A command-line tool for Go that automatically generates empty function templates required by interfaces, saving programmers from typing repetitive boilerplate code by hand.

What language is impl written in?

Mainly Go. The stack also includes Go, CLI, Vim.

Is impl actively maintained?

Dormant — no commits in 2+ years (last push 2019-02-01).

How hard is impl to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is impl for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.