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 Ruby Makefile Dockerfile
Switch branches/tags
Clone or download
Permalink
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 Add "deleteHttpHeader" Jun 22, 2018
proto fix out of range index in headerIndex, github.com/buger/goreplay/issu… May 23, 2018
raw_socket_listener remove unused "copy" Aug 6, 2018
site continue work on new docs Jan 20, 2017
vendor Add way to control packet capture buffer size and optimize snaplen May 27, 2018
.dockerignore Use latest libpcap and ensure to close sockets May 13, 2016
.gitignore Fix #408 Dec 27, 2016
.gitmodules Add google/gopacket in vendor/ (#360) Aug 23, 2016
.request continue work on new docs Jan 20, 2017
.travis.yml Libpcap support and vairous bugfixes Apr 29, 2016
COMM-LICENSE Update COMM-LICENSE Aug 28, 2017
Dockerfile Hardcode alpine version and bump version of goreplay from 16.0.2 to 16.1 Nov 15, 2017
Dockerfile.dev Ensure that tcp-output do not loose messages when reconnecting Feb 7, 2018
ELASTICSEARCH.md Revert "Remove elastic search functionality" Sep 4, 2014
LICENSE.txt Update LICENSE.txt Aug 5, 2016
Makefile Fix zero-length 100-continue packets Sep 3, 2017
Procfile Updated Procfile Oct 31, 2013
README.md Add a "Reviewed by Hound" badge Aug 1, 2018
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 Fix emitter typo May 10, 2018
emitter_test.go Cleanup modifier settings after test Jan 23, 2017
gor.go When using --input-file it should exit once file is fully read Jun 27, 2017
gor_stat.go FIX: miscalculation of the mean value Aug 8, 2018
http_client.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
http_client_test.go Adjust package order (#487) Aug 22, 2017
http_modifier.go Fix response latency calculation Feb 5, 2018
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 Add way to control packet capture buffer size and optimize snaplen May 27, 2018
input_raw_test.go Add way to control packet capture buffer size and optimize snaplen May 27, 2018
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 Fix response latency calculation Feb 5, 2018
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 format file Aug 11, 2017
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 Ensure that tcp-output do not loose messages when reconnecting Feb 7, 2018
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 way to control packet capture buffer size and optimize snaplen May 27, 2018
sidenav.css continue work on new docs Jan 20, 2017
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/

We just released a new version, see announcement https://leonsbox.com/goreplay-v0-16-and-4th-anniversary-5408b1fd72e0

About

GoReplay is the simplest and safest way to test your app using real traffic before you put it into production.

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 changes and infrastructure changes. Did we mention that no coding is required?

Here is basic workflow: The listener server catches http traffic and sends it to the replay server or saves to file. The replay server forwards traffic to a given address.

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