MCPcopy
hub / github.com/probelabs/goreplay

github.com/probelabs/goreplay @1.3.3 sqlite

repository ↗ · DeepWiki ↗ · release 1.3.3 ↗
664 symbols 2,459 edges 80 files 278 documented · 42%
README

GitHub release codebeat Go Report Card Join the chat at https://gitter.im/buger/gor Reviewed by Hound

Go Replay

https://goreplay.org/

GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, load testing, monitoring and detailed analysis.

About

As your application grows, the effort required to test it also grows exponentially. GoReplay offers you the simple idea of reusing your existing traffic for testing, which makes it incredibly powerful. Our state of art technique allows you to analyze and record your application traffic without affecting it. This eliminates the risks that come with putting a third party component in the critical path.

GoReplay increases your confidence in code deployments, configuration and infrastructure changes.

GoReplay offers unique approach for shadowing. Instead of being a proxy, GoReplay in background listen for traffic on your network interface, requiring no changes in your production infrastructure, rather then running GoReplay daemon on the same machine as your service.

Diagram

Check latest documentation.

Installation

Download latest binary from https://github.com/buger/goreplay/releases or compile by yourself.

Getting started

The most basic setup will be sudo ./gor --input-raw :8000 --output-stdout which acts like tcpdump. If you already have test environment you can start replaying: sudo ./gor --input-raw :8000 --output-http http://staging.env.

See the our documentation and Getting started page for more info.

Newsletter

Subscribe to our newsletter to stay informed about the latest features and changes to Gor project.

Want to Upgrade?

We have created a GoReplay PRO extension which provides additional features such as support for binary protocols like Thrift or ProtocolBuffers, saving and replaying from cloud storage, TCP sessions replication, etc. The PRO version also includes a commercial-friendly license, dedicated support, and it also allows you to support high-quality open source development.

Problems?

If you have a problem, please review the FAQ and Troubleshooting wiki pages. Searching the issues for your problem is also a good idea.

All bug-reports and suggestions should go through Github Issues or our Google Group (you can just send email to gor-users@googlegroups.com). If you have a private question feel free to send email to support@gortool.com.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Companies using Gor

  • GOV.UK - UK Government Digital Service
  • theguardian.com - Most popular online newspaper in the UK
  • TomTom - Global leader in navigation, traffic and map products, GPS Sport Watches and fleet management solutions.
  • 3SCALE - API infrastructure to manage your APIs for internal or external users
  • Optionlab - Optimize customer experience and drive engagement across multiple channels
  • TubeMogul - Software for Brand Advertising
  • Videology - Video advertising platform
  • ForeksMobile - One of the leading financial application development company in Turkey
  • Granify - AI backed SaaS solution that enables online retailers to maximise their sales
  • And many more!

If you are using Gor, we are happy to add you to the list and share your story, just write to: hello@goreplay.org

Author

Leonid Bugaev, @buger, https://leonsbox.com

Extension points exported contracts — how you extend this code

PluginReader (Interface)
PluginReader is an interface for input plugins [11 implementers]
plugins.go
ProtocolStateSetter (Interface)
ProtocolStateSetter is an interface used to provide protocol state for future use [1 implementers]
proto/proto.go
Socket (Interface)
Socket is any interface that defines the behaviors of Socket [1 implementers]
capture/socket.go
PacketHandler (FuncType)
PacketHandler is a function that is used to handle packets
capture/capture.go
Emitter (FuncType)
Emitter message handler
tcp/tcp_message.go
PluginWriter (Interface)
PluginWriter is an interface for output plugins [10 implementers]
plugins.go
PcapStatProvider (Interface)
(no doc) [1 implementers]
capture/capture.go
HintEnd (FuncType)
HintEnd hints the parser to stop the session, see MessageParser.End when set, it will be executed before checking FIN or
tcp/tcp_message.go

Core symbols most depended-on inside this repo

Error
called by 140
elasticsearch.go
Write
called by 82
gor_stat.go
Debug
called by 58
settings.go
Close
called by 57
capture/socket.go
Start
called by 40
emitter.go
Header
called by 36
proto/proto.go
fail
called by 35
middleware/middleware.js
NewEmitter
called by 34
emitter.go

Shape

Function 314
Method 246
Struct 71
TypeAlias 21
Interface 6
FuncType 5
Class 1

Languages

Go91%
TypeScript7%
Java1%
Python1%

Modules by API surface

middleware/middleware.js42 symbols
http_modifier_settings.go36 symbols
capture/capture.go34 symbols
tcp/tcp_message.go30 symbols
proto/proto.go27 symbols
tcp/tcp_packet.go22 symbols
input_file.go21 symbols
proto/proto_test.go20 symbols
output_file.go20 symbols
input_file_test.go16 symbols
ring/ring.go15 symbols
output_http.go14 symbols

Dependencies from manifests, versioned

github.com/Shopify/saramav1.26.4 · 1×
github.com/araddon/gouv0.0.0-2019011001175 · 1×
github.com/aws/aws-sdk-gov1.33.2 · 1×
github.com/bitly/go-hostpoolv0.1.0 · 1×
github.com/bmizerany/assertv0.0.0-2016061122193 · 1×
github.com/google/gopacketv1.1.20-0.2021042915 · 1×
github.com/mattbaird/elastigov0.0.0-2017012322002 · 1×
github.com/pierrec/lz4v2.5.2+incompatible · 1×
github.com/rcrowley/go-metricsv0.0.0-2020031300545 · 1×
github.com/smartystreets/goconveyv1.6.4 · 1×

For agents

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

⬇ download graph artifact