finds.dev← search

// the find

SpectoLabs/hoverfly

★ 2,502 · Go · Apache-2.0 · updated Jul 2026

Lightweight service virtualization/ API simulation / API mocking tool for developers and testers

Hoverfly is a Go-based proxy that sits between your app and its API dependencies, letting you record real traffic and replay it as simulations. It runs as a local proxy server with a CLI companion (hoverctl), and supports modes like capture, simulate, spy, diff, and synthesize. If you're doing contract testing or need to decouple your test suite from flaky third-party APIs, this is a mature option.

The matching system is genuinely deep — you get exact, glob, regex, JSON path, XPath, and JWT matchers, composable per-field. The state machine support (requiring and setting state across a sequence of requests) means you can model multi-step flows like login-then-fetch without hacks. Latency simulation uses a log-normal distribution, which is more realistic than a fixed delay. The simulation format is versioned JSON (v5 currently), importable and exportable, so simulations travel well across teams and CI environments.

The Java binding exists but there's nothing for Python, TypeScript, or .NET — if your team isn't on the JVM or comfortable with the CLI, you're on your own. The proxy-only architecture means you have to configure your app or test runner to actually use it as a proxy, which is awkward for anything that hardcodes base URLs or uses gRPC. Templating is Go's `text/template` with added helpers, which gets messy fast for anything beyond simple token substitution. The project is maintained by iOCO Solutions but community activity is thin — 228 forks and a GitHub Discussions board with sparse traffic signals that if you hit an edge case, you're likely filing a bug rather than finding an answer.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →