Skip to content
GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
Go JavaScript CSS Makefile Ruby Dockerfile
Branch: master
Clone or download
Latest commit ae4a625 Sep 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
byteutils remove some else statements for reducing indent (#488) Aug 22, 2017
docs Fix broken link to goreplay.com -> goreplay.org Jul 13, 2018
examples/middleware fix typo in ruby middleware example Jul 4, 2018
homebrew Update homebrew formula Jun 9, 2016
middleware Update README (#677) Jun 11, 2019
proto Fix array out of bounds during using http-set-header (#627) Feb 16, 2019
raw_socket_listener More robust chunked encoding finished check. (#628) Feb 16, 2019
site continue work on new docs Jan 20, 2017
vendor Use vendoring May 13, 2019
.dockerignore Use latest libpcap and ensure to close sockets May 13, 2016
.gitignore Fix #408 Dec 27, 2016
.gitmodules convert to gomod May 3, 2019
.request continue work on new docs Jan 20, 2017
.travis.yml try to fix ci May 3, 2019
COMM-LICENSE Update COMM-LICENSE Aug 28, 2017
Dockerfile Using scratch image to execute goreplay (#619) Feb 16, 2019
Dockerfile.dev Fix golint URL per golang/lint#415 (#618) Feb 16, 2019
ELASTICSEARCH.md Revert "Remove elastic search functionality" Sep 4, 2014
LICENSE.txt Update LICENSE.txt Aug 5, 2016
Makefile Add commands to generate rpm/deb Apr 2, 2019
Procfile Updated Procfile Oct 31, 2013
README.md Update README.md Mar 30, 2019
circle.yml Libpcap support and vairous bugfixes Apr 29, 2016
elasticsearch.go Fix response latency calculation Feb 5, 2018
elasticsearch_test.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
emitter.go Add setting for copyBufferSize, defaults to 5 Mbytes (#630) Feb 16, 2019
emitter_test.go Cleanup modifier settings after test Jan 23, 2017
go.mod Use vendoring May 13, 2019
go.sum convert to gomod May 3, 2019
gor.go Add way to dynamically profile Feb 16, 2019
gor_stat.go Add adjustable output-http-stats-ms (#633) Feb 16, 2019
http_client.go Add --output-http-compatibility-mode Mar 10, 2019
http_client_test.go Add --output-http-compatibility-mode Mar 10, 2019
http_modifier.go File output now case limit by size Feb 16, 2019
http_modifier_settings.go Fix response latency calculation Feb 5, 2018
http_modifier_settings_test.go Allow url param rewriting Jul 9, 2015
http_modifier_test.go Fix response latency calculation Feb 5, 2018
http_prettifier.go Fix prefixer panic when body is too small Aug 10, 2018
http_prettifier_test.go format file Aug 11, 2017
input_dummy.go Refactor #308 Jun 29, 2016
input_file.go When using --input-file it should exit once file is fully read Jun 27, 2017
input_file_test.go Refactor #308 Jun 29, 2016
input_http.go Refactor #308 Jun 29, 2016
input_http_test.go Adjust package order (#487) Aug 22, 2017
input_kafka.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
input_kafka_test.go Adjust package order (#487) Aug 22, 2017
input_raw.go Merge branch 'b34-pcap-immediate-mode' of https://github.com/bruce34/… Feb 16, 2019
input_raw_test.go Improve benchmark Sep 16, 2019
input_tcp.go format file Aug 11, 2017
input_tcp_test.go format file Aug 11, 2017
kafka.go Adjust package order (#487) Aug 22, 2017
limiter.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
limiter_test.go FileInput should have own limiter algorithm Oct 26, 2014
middleware.go Fix typo Aug 2, 2018
middleware_test.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
mkdocs.yml continue work on new docs Jan 20, 2017
output_dummy.go Rename --output-dummy to --output-stdout and make it boolean (#282) May 21, 2016
output_file.go Add --output-http-compatibility-mode Mar 10, 2019
output_file_settings.go remove some else statements for reducing indent (#488) Aug 22, 2017
output_file_test.go format file Aug 11, 2017
output_http.go Add --output-http-compatibility-mode Mar 10, 2019
output_http_test.go Track http responses (#416) Jan 23, 2017
output_kafka.go Adjust package order (#487) Aug 22, 2017
output_kafka_test.go Adjust package order (#487) Aug 22, 2017
output_null.go go fmt Aug 31, 2016
output_tcp.go Add adjustable output-http-stats-ms (#633) Feb 16, 2019
output_tcp_test.go Add TLS security support between --input-tcp and --output-tcp Jun 27, 2017
plugins.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
plugins_test.go Make limiter work for all inputs/outputs Oct 25, 2014
protocol.go Fix response meta Jul 13, 2016
settings.go Add --output-http-compatibility-mode Mar 10, 2019
sidenav.css continue work on new docs Jan 20, 2017
snapcraft.yaml Add support for building snaps (#625) Feb 16, 2019
test_input.go few fmt fixes Jan 23, 2017
test_output.go New portion of changes Jul 13, 2015

README.md

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

You can’t perform that action at this time.