MCPcopy
hub / github.com/SpectoLabs/hoverfly

github.com/SpectoLabs/hoverfly @v1.12.10 sqlite

repository ↗ · DeepWiki ↗ · release v1.12.10 ↗
2,657 symbols 10,410 edges 399 files 222 documented · 8%
README

Hoverfly

Circle CI Documentation Status GitHub Discussions

API simulations for development and testing

Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you can create realistic simulations of the APIs your application depends on.

  • Replace slow, flaky API dependencies with realistic, re-usable simulations
  • Simulate network latency, random failures or rate limits to test edge-cases
  • Extend and customize with any programming language
  • Export, share, edit and import API simulations
  • CLI and native language bindings for Java
  • REST API
  • Lightweight, high-performance, run anywhere
  • Apache 2 license

Hoverfly is developed and maintained by iOCO Solutions.

Quickstart

Hoverfly Cloud

Hoverfly Cloud - API simulations as a service. Sign up here.

Contributing

Contributions are welcome!

To contribute, please:

  1. Fork the repository
  2. Create a feature branch on your fork
  3. Commit your changes, and create a pull request against Hoverfly's master branch
  4. In your pull request, include details regarding your change, i.e
    1. why you made it
    2. how to test it
    3. any information about testing you have performed

To read more about forking model, check out this link: forking workflow.

Setup for local development

Build

  1. Install Go. You should follow the download and installation instructions for your OS from official Go website. If you have installed Go before using either apt-get or homebrew, you should uninstall those first.
  2. Clone the hoverfly project: bash git clone https://github.com/SpectoLabs/hoverfly.git # or: git clone https://github.com/<your_username>/hoverfly.git
  3. Finally you can run the build

    bash cd hoverfly make build

Notice the binaries are in the target directory.

Test

You should be able to execute all unit and functional tests with:

make test

Some middleware tests may fail if you don't have ruby and python setup in your environment. If you are using Mac, you can install them with Homebrew:

brew install ruby
brew install python

License

Apache License version 2.0 See LICENSE for details.

Copyright (c) 2025 Hoverfly Cloud

Extension points exported contracts — how you extend this code

AdminHandler (Interface)
(no doc) [21 implementers]
core/handlers/handlers.go
Mode (Interface)
(no doc) [6 implementers]
core/modes/modes.go
FastCache (Interface)
FastCache - cache interface used to store and retrieve any data type which requires no serialization [3 implementers]
core/cache/fastcache.go
Response (Interface)
(no doc) [5 implementers]
core/interfaces/interfaces.go
Authentication (Interface)
Authentication - generic interface for authentication backend [1 implementers]
core/authentication/backends/storage_backend.go
MatchingStrategy (Interface)
(no doc) [2 implementers]
core/matching/matching_strategy_runner.go
DelayGenerator (Interface)
(no doc) [2 implementers]
core/models/delay_log_normal.go
HoverflySimulation (Interface)
(no doc) [4 implementers]
core/handlers/v2/simulation_handler.go

Core symbols most depended-on inside this repo

Get
called by 512
core/cache/cache.go
Proxy
called by 246
functional-tests/functional_tests.go
Error
called by 222
core/util/jwt.go
GetMatchingPairs
called by 211
core/models/simulation.go
Set
called by 178
core/cache/cache.go
GetAdminPort
called by 150
functional-tests/functional_tests.go
DoRequest
called by 147
core/modes/spy_mode.go
Start
called by 134
functional-tests/functional_tests.go

Shape

Function 1,657
Method 732
Struct 213
Interface 36
TypeAlias 14
FuncType 5

Languages

Go99%
Python1%

Modules by API surface

core/matching/matchers/xml_templated_match_test.go138 symbols
core/templating/templating_test.go80 symbols
core/hoverfly_service_test.go75 symbols
core/templating/template_helpers.go67 symbols
core/templating/template_helpers_test.go53 symbols
core/hoverfly_service.go52 symbols
functional-tests/functional_tests.go50 symbols
core/util/util_test.go41 symbols
core/util/util.go35 symbols
core/hoverfly_test.go35 symbols
core/handlers/v2/simulation_handler_test.go34 symbols
core/matching/strongest_match_strategy_test.go30 symbols

Dependencies from manifests, versioned

github.com/ChrisTrenkamp/xselv0.9.16 · 1×
github.com/SpectoLabs/goproxyv0.0.0-2024071721570 · 1×
github.com/SpectoLabs/goproxy/extv0.0.0-2024071721570 · 1×
github.com/SpectoLabs/goxml2jsonv0.0.0-2024012122361 · 1×
github.com/SpectoLabs/raymondv2.0.3-0.20240827093 · 1×
github.com/antonholmquist/jasonv1.0.1-0.20160829104 · 1×
github.com/aymerick/raymondv2.0.2+incompatible · 1×
github.com/beevik/etreev1.6.0 · 1×
github.com/boltdb/boltv1.3.1 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/clipperhouse/displaywidthv0.10.0 · 1×

For agents

$ claude mcp add hoverfly \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact