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 CSS Ruby Makefile
Failed to load latest commit information.
byteutils Improve byteutils Jul 13, 2015
docs Merge branch 'master' of https://github.com/buger/gor Jan 20, 2017
examples/middleware Remove server.go because of having 'gor file-server :8080' Nov 8, 2016
homebrew Update homebrew formula Jun 9, 2016
proto Prettify http (#418) Jan 23, 2017
raw_socket_listener More fmt fixes Jan 23, 2017
site continue work on new docs Jan 20, 2017
vendor/github.com Add google/gopacket in vendor/ (#360) Aug 23, 2016
.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
Dockerfile Change Dockerfile because of issue on build echo.java Oct 31, 2016
ELASTICSEARCH.md Revert "Remove elastic search functionality" Sep 4, 2014
LICENSE.txt Update LICENSE.txt Aug 5, 2016
Makefile Add install task Feb 5, 2017
Procfile Updated Procfile Oct 31, 2013
README.md Update README.md Aug 8, 2016
circle.yml Libpcap support and vairous bugfixes Apr 29, 2016
elasticsearch.go Add json message output for kafka Nov 1, 2016
emitter.go Prettify http (#418) Jan 23, 2017
emitter_test.go Cleanup modifier settings after test Jan 23, 2017
gor.go go fmt Aug 31, 2016
gor_stat.go Formatting fixes Sep 1, 2015
http_client.go few fmt fixes Jan 23, 2017
http_client_test.go fix test: should not add port to host for https Dec 19, 2016
http_modifier.go Add protection for malformed requests Aug 23, 2015
http_modifier_settings.go Allow spaces inside filters Dec 27, 2016
http_modifier_settings_test.go Allow url param rewriting Jul 9, 2015
http_modifier_test.go Allow spaces inside filters Dec 27, 2016
http_prettifier.go Prettify http (#418) Jan 23, 2017
http_prettifier_test.go Prettify http (#418) Jan 23, 2017
input_dummy.go Refactor #308 Jun 29, 2016
input_file.go Add missing change Jun 29, 2016
input_file_test.go Refactor #308 Jun 29, 2016
input_http.go Refactor #308 Jun 29, 2016
input_http_test.go Add Mac support May 13, 2016
input_kafka.go Fix kafka issue (#419) Jan 25, 2017
input_kafka_test.go More fmt fixes Jan 23, 2017
input_raw.go Fix BodySize for multi-packet headers Jun 30, 2016
input_raw_test.go go fmt Aug 31, 2016
input_tcp.go Fix --input-tcp for payloads > 64kb May 17, 2016
input_tcp_test.go Fix --input-tcp for payloads > 64kb May 17, 2016
kafka.go Add tests and modify to work same as Kafka output Jan 20, 2017
limiter.go Prettify http (#418) Jan 23, 2017
limiter_test.go FileInput should have own limiter algorithm Oct 26, 2014
middleware.go Make http prettifier work with middleware Feb 7, 2017
middleware_test.go Add support for injecting real ip (#296) Jun 9, 2016
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 infinite lock at file output Feb 5, 2017
output_file_settings.go Write files in chunks (#293) Jun 7, 2016
output_file_test.go Allow to use payload type for file names (#417) Jan 23, 2017
output_http.go Make HTTP output less verbose Feb 7, 2017
output_http_test.go Track http responses (#416) Jan 23, 2017
output_kafka.go Fix kafka issue (#419) Jan 25, 2017
output_kafka_test.go Add Kafka tests and raw format mode (#415) Jan 20, 2017
output_null.go go fmt Aug 31, 2016
output_tcp.go Improve reconnection strategy May 23, 2016
output_tcp_test.go Explicitly set ip in tests Apr 20, 2016
plugins.go Create kafka input Dec 22, 2016
plugins_test.go Make limiter work for all inputs/outputs Oct 25, 2014
protocol.go Fix response meta Jul 13, 2016
settings.go Prettify http (#418) Jan 23, 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


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

Go Replay



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.


Check latest documentation.


Download latest binary from https://github.com/buger/gor/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.


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.


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 though 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.


  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


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