2014-01-09 16:38:08 +00:00
[![Build Status ](https://travis-ci.org/mitmproxy/mitmproxy.png?branch=master )](https://travis-ci.org/mitmproxy/mitmproxy) [![Coverage Status ](https://coveralls.io/repos/mitmproxy/mitmproxy/badge.png?branch=master )](https://coveralls.io/r/mitmproxy/mitmproxy)
2013-08-25 02:31:35 +00:00
2013-01-01 03:35:52 +00:00
__mitmproxy__ is an interactive, SSL-capable man-in-the-middle proxy for HTTP
with a console interface.
2011-02-20 23:11:41 +00:00
2013-01-01 03:35:52 +00:00
__mitmdump__ is the command-line version of mitmproxy. Think tcpdump for HTTP.
__libmproxy__ is the library that mitmproxy and mitmdump are built on.
2011-03-17 20:04:49 +00:00
2013-03-23 02:42:25 +00:00
Documentation, tutorials and distribution packages can be found on the
mitmproxy.org website:
2012-02-25 00:16:30 +00:00
[mitmproxy.org ](http://mitmproxy.org ).
2010-02-16 05:25:03 +00:00
2012-02-19 09:43:05 +00:00
Features
--------
2010-02-16 05:25:03 +00:00
2011-03-15 22:09:10 +00:00
- Intercept HTTP requests and responses and modify them on the fly.
- Save complete HTTP conversations for later replay and analysis.
2011-03-17 20:04:49 +00:00
- Replay the client-side of an HTTP conversations.
2011-03-18 22:26:51 +00:00
- Replay HTTP responses of a previously recorded server.
2012-02-20 23:32:56 +00:00
- Reverse proxy mode to forward traffic to a specified server.
2013-01-01 03:35:52 +00:00
- Transparent proxy mode on OSX and Linux.
2012-12-09 21:57:11 +00:00
- Make scripted changes to HTTP traffic using Python.
2011-03-18 22:26:51 +00:00
- SSL certificates for interception are generated on the fly.
2013-01-01 03:35:52 +00:00
- And much, much more.
2011-01-24 21:59:50 +00:00
2011-08-06 21:52:13 +00:00
2014-09-09 00:18:08 +00:00
Installation
------------
The recommended way to install mitmproxy is running < code > pip install mitmproxy< / code > .
For convenience, we provide binary packages on [mitmproxy.org ](http://mitmproxy.org/ ).
2010-02-16 04:09:07 +00:00
Requirements
2011-03-19 06:47:19 +00:00
------------
2010-02-16 04:09:07 +00:00
2012-11-29 19:17:50 +00:00
* [Python ](http://www.python.org ) 2.7.x.
2013-03-10 04:09:40 +00:00
* [netlib ](http://pypi.python.org/pypi/netlib ), version matching mitmproxy.
2014-01-19 05:08:50 +00:00
* Third-party packages listed in [setup.py ](https://github.com/mitmproxy/mitmproxy/blob/master/setup.py )
2013-05-13 21:12:26 +00:00
2014-01-19 05:08:50 +00:00
Optional packages for extended content decoding:
2013-05-13 21:12:26 +00:00
* [PyAMF ](http://www.pyamf.org/ ) version 0.6.1 or newer.
* [protobuf ](https://code.google.com/p/protobuf/ ) version 2.5.0 or newer.
2014-01-19 05:08:50 +00:00
* [cssutils ](http://cthedot.de/cssutils/ ) version 1.0 or newer.
2012-04-09 03:15:41 +00:00
2014-09-09 00:18:08 +00:00
For convenience, all optional dependencies can be installed with
`pip install mitmproxy[contenviews]`
__mitmproxy__ is tested and developed on OSX, Linux and OpenBSD. On Windows,
only mitmdump is supported, which does not have a graphical user interface.
2012-04-09 03:15:41 +00:00
2011-03-28 22:53:13 +00:00
2013-02-16 03:46:16 +00:00
Hacking
-------
The following components are needed if you plan to hack on mitmproxy:
2010-02-16 04:09:07 +00:00
2014-09-09 00:18:08 +00:00
* The test suite requires the `dev` extra requirements listed in [setup.py ](https://github.com/mitmproxy/mitmproxy/blob/master/setup.py ) and [pathod ](http://pathod.net ), version matching mitmproxy.
2013-02-16 03:46:16 +00:00
* Rendering the documentation requires [countershape ](http://github.com/cortesi/countershape ).
2013-03-23 02:42:25 +00:00
2014-09-09 00:18:08 +00:00
For convenience, the following procedure is recommended to set up your environment:
```
$ git clone https://github.com/mitmproxy/mitmproxy.git
$ cd mitmproxy
$ pip install --src . -r requirements.txt
```
This installs the latest GitHub versions of mitmproxy, netlib and pathod into `mitmproxy/` . All other development dependencies save countershape are installed into their usual locations.
2013-05-24 03:23:47 +00:00
2013-05-13 21:12:26 +00:00
Please ensure that all patches are accompanied by matching changes in the test
suite. The project maintains 100% test coverage.