git404hub

what is go-exports fr?

eternal-flame-ad/go-exports — explained in plain English

Analysis updated 2026-07-19 · repo last pushed 2019-02-02

1GoAudience · developerComplexity · 2/5DormantSetup · easy

tl;dr

A Go tool that snapshots your code's public API into a JSON file and compares future versions against it, so you can catch breaking changes before they break your plugins.

vibe map

mindmap
  root((repo))
    What it does
      Scans Go code
      Exports JSON spec
      Compares versions
      Reports differences
    Tech stack
      Go
      JSON
    Use cases
      Catch breaking changes
      Audit plugin APIs
      CI testing pipeline
    Audience
      Go developers
      Plugin maintainers
      Extensible app builders

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 make with this?

VIBE 1

Snapshot your Go package's public API at a major release and store the JSON file as a baseline.

VIBE 2

Run the comparison tool in your test pipeline to catch breaking changes before shipping a new release.

VIBE 3

Audit which exported symbols changed between versions of a shared package used by plugins.

what's the stack?

GoJSON

how it stacks up fr

eternal-flame-ad/go-exportsaegrail/aegrail-engineaeneasr/form
Stars111
LanguageGoGoGo
Last pushed2019-02-022019-03-08
MaintenanceDormantDormant
Setup difficultyeasyhardeasy
Complexity2/55/52/5
Audiencedeveloperops devopsdeveloper

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

how do i run it?

Difficulty · easy time til it works · 5min

Requires a Go codebase with packages you want to snapshot, the tool itself is a standard Go utility with no external dependencies.

in plain english

go-exports is a tool for Go programmers who use plugins, dynamically loaded code modules. It helps solve a specific headache: Go has strict rules about how packages shared between a main application and its plugins must stay in sync. If the exported symbols (the public-facing functions, types, and variables) change between versions, plugins break. This utility snapshots what your code currently exposes and lets you compare future versions against that snapshot to catch breaking changes early. At a high level, the tool does two things. First, it scans a Go codebase and generates a JSON file listing every exported symbol, including types, functions, struct members, and interface methods. This acts as a baseline record of your public API at a given point in time, say a major release. Second, you can run it with a comparison flag, pointing it at that saved JSON file. It checks the current code against the snapshot and reports any differences, so you immediately see what changed. The primary audience is developers maintaining Go applications that load plugins at runtime. For example, if you're building an extensible server application where third parties write plugins, you need to guarantee that the shared package interface stays stable across releases. Rather than manually auditing every change, you'd snapshot your exports at each major release and run the comparison in your testing pipeline to flag any modifications before they ship. The project is narrowly scoped and practical. It doesn't attempt to be a general-purpose API documentation tool or linter, it just captures and compares exported symbols in a straightforward JSON format. The README is minimal, keeping to the essentials: generate a spec, then compare against it.

prompts (copy fr)

prompt 1
I maintain a Go application that loads plugins at runtime. Help me set up a CI step that runs go-exports to compare my current code against a saved JSON snapshot and fails the build if breaking changes are detected.
prompt 2
Write a script that runs go-exports to generate a JSON spec of my Go package's exported symbols, then saves the file with a version tag so I can track API changes across releases.
prompt 3
Explain how Go plugin compatibility works and show me how to use go-exports to prevent breaking changes in the shared packages between my main app and its plugins.

Frequently asked questions

what is go-exports fr?

A Go tool that snapshots your code's public API into a JSON file and compares future versions against it, so you can catch breaking changes before they break your plugins.

What language is go-exports written in?

Mainly Go. The stack also includes Go, JSON.

Is go-exports actively maintained?

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

How hard is go-exports to set up?

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

Who is go-exports for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.