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
Switch branches/tags
Permalink
Failed to load latest commit information.
byteutils remove some else statements for reducing indent (#488) Aug 22, 2017
docs Merge branch 'master' of https://github.com/buger/gor Jan 20, 2017
examples/middleware Adjust package order (#487) Aug 22, 2017
homebrew Update homebrew formula Jun 9, 2016
middleware Fix memory leak Oct 4, 2017
proto Improve handling for 100-continue requests for clients ignoring respo… Sep 15, 2017
raw_socket_listener Fix comment on tcp message methods (#521) Oct 23, 2017
site continue work on new docs Jan 20, 2017
vendor Rename all package imports from `gor` to `goreplay` May 1, 2017
.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 Rename Dockerfile to Dockerfile.dev May 18, 2017
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 fix typo in the README Oct 31, 2017
circle.yml Libpcap support and vairous bugfixes Apr 29, 2016
elasticsearch.go Adjust package order (#487) Aug 22, 2017
elasticsearch_test.go fix: add basic auth support in elastic URI (#433) Aug 22, 2017
emitter.go Handle gzip encoding error Jun 24, 2017
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 Formatting fixes Sep 1, 2015
http_client.go Fix panic when reading too big response in debug mode Sep 14, 2017
http_client_test.go Adjust package order (#487) Aug 22, 2017
http_modifier.go Filter requests using regex on base64 decoded userId:passwd of basic … Aug 22, 2017
http_modifier_settings.go Filter requests using regex on base64 decoded userId:passwd of basic … Aug 22, 2017
http_modifier_settings_test.go Allow url param rewriting Jul 9, 2015
http_modifier_test.go Filter requests using regex on base64 decoded userId:passwd of basic … Aug 22, 2017
http_prettifier.go Adjust package order (#487) Aug 22, 2017
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 remove some else statements for reducing indent (#488) Aug 22, 2017
input_kafka_test.go Adjust package order (#487) Aug 22, 2017
input_raw.go Adjust package order (#487) Aug 22, 2017
input_raw_test.go Adjust package order (#487) Aug 22, 2017
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 Prettify http (#418) Jan 23, 2017
limiter_test.go FileInput should have own limiter algorithm Oct 26, 2014
middleware.go Increase middleware buffer to avoid overloads when prettifier returns… Jan 10, 2018
middleware_test.go Adjust package order (#487) Aug 22, 2017
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 file rotate issues Aug 22, 2017
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 format file Aug 11, 2017
output_tcp_test.go Add TLS security support between --input-tcp and --output-tcp Jun 27, 2017
plugins.go Add option to specify custom BPF filter Jul 27, 2017
plugins_test.go Make limiter work for all inputs/outputs Oct 25, 2014
protocol.go Fix response meta Jul 13, 2016
settings.go Filter requests using regex on base64 decoded userId:passwd of basic … Aug 22, 2017
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

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 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 add you to the list and share your story, just write to: hello@goreplay.org

Author

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