diff --git a/MANIFEST.in b/MANIFEST.in index 3578d855e..f18533a37 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,5 @@ include mitmproxy mitmdump -include LICENSE CHANGELOG CONTRIBUTORS README.txt -exclude README.mkd +include LICENSE CHANGELOG CONTRIBUTORS README.rst recursive-include examples * recursive-include doc * recursive-include test * diff --git a/README.mkd b/README.mkd deleted file mode 100644 index 9b4944e32..000000000 --- a/README.mkd +++ /dev/null @@ -1,103 +0,0 @@ -[![Build Status](https://img.shields.io/travis/mitmproxy/mitmproxy/master.svg)](https://travis-ci.org/mitmproxy/mitmproxy) -[![Code Health](https://landscape.io/github/mitmproxy/mitmproxy/master/landscape.svg?style=flat)](https://landscape.io/github/mitmproxy/mitmproxy/master) -[![Coverage Status](https://img.shields.io/coveralls/mitmproxy/mitmproxy/master.svg)](https://coveralls.io/r/mitmproxy/mitmproxy) -[![Downloads](https://img.shields.io/pypi/dm/mitmproxy.svg?color=orange)](https://pypi.python.org/pypi/mitmproxy) -[![Latest Version](https://img.shields.io/pypi/v/mitmproxy.svg)](https://pypi.python.org/pypi/mitmproxy) -[![Supported Python versions](https://img.shields.io/pypi/pyversions/mitmproxy.svg)](https://pypi.python.org/pypi/mitmproxy) - - -__mitmproxy__ is an interactive, SSL-capable man-in-the-middle proxy for HTTP -with a console interface. - -__mitmdump__ is the command-line version of mitmproxy. Think tcpdump for HTTP. - -__libmproxy__ is the library that mitmproxy and mitmdump are built on. - -Documentation, tutorials and distribution packages can be found on the -mitmproxy.org website: -[mitmproxy.org](http://mitmproxy.org). - -Installation Instructions are available at [mitmproxy.org/doc/install.html](http://mitmproxy.org/doc/install.html). - -You can join our developer chat on Slack: -[![Slack](http://slack.mitmproxy.org/badge.svg)](http://slack.mitmproxy.org/) - - -Features --------- - -- Intercept HTTP requests and responses and modify them on the fly. -- Save complete HTTP conversations for later replay and analysis. -- Replay the client-side of an HTTP conversations. -- Replay HTTP responses of a previously recorded server. -- Reverse proxy mode to forward traffic to a specified server. -- Transparent proxy mode on OSX and Linux. -- Make scripted changes to HTTP traffic using Python. -- SSL certificates for interception are generated on the fly. -- And much, much more. - -__mitmproxy__ is tested and developed on OSX, Linux and OpenBSD. On Windows, -only mitmdump is supported, which does not have a graphical user interface. - - - -Hacking -------- - -To get started hacking on mitmproxy, make sure you have -[Python](http://www.python.org) 2.7.x. with -[virtualenv](https://virtualenv.pypa.io/en/latest/) installed (you can find -installation instructions for virtualenv -[here](https://virtualenv.pypa.io/en/latest/installation.html)). Then do the -following: - -``` -git clone https://github.com/mitmproxy/mitmproxy.git -git clone https://github.com/mitmproxy/netlib.git -git clone https://github.com/mitmproxy/pathod.git -cd mitmproxy -source ./dev -``` - -The *dev* script will create a virtualenv environment in a directory called -"venv.mitmproxy", and install all of mitmproxy's development requirements, plus -all optional modules. The primary mitmproxy components - mitmproxy, netlib and -pathod - are all installed "editable", so any changes to the source in the git -checkouts will be reflected live in the virtualenv. - -To confirm that you're up and running, activate the virtualenv, and run the -mitmproxy test suite: - -```shell -$ . ../venv.mitmproxy/bin/activate # ..\venv.mitmproxy\Scripts\activate.bat on Windows -$ nosetests ./test -``` -Note that the main executables for the project - **mitmdump**, **mitmproxy** and -**mitmweb** - are all created within the virtualenv. After activating the -virtualenv, they will be on your $PATH, and you can run them like any other -command: - -```$ mitmdump --version``` - -For convenience, the project includes an -[autoenv](https://github.com/kennethreitz/autoenv) file -([.env](https://github.com/mitmproxy/mitmproxy/blob/master/.env)) that -auto-activates the virtualenv when you cd into the mitmproxy directory. - - -### Testing - -If you've followed the procedure above, you already have all the development -requirements installed, and you can simply run the test suite: - -```nosetests ./test``` - -Please ensure that all patches are accompanied by matching changes in the test -suite. The project maintains 100% test coverage. - - -### Docs - -Rendering the documentation requires [countershape](http://github.com/cortesi/countershape). After installation, you can render the documentation to the doc like this: - -`cshape doc-src doc` diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..36bce4283 --- /dev/null +++ b/README.rst @@ -0,0 +1,159 @@ +|travis| |coveralls| |downloads| |latest-release| |python-versions| + +| + +``mitmproxy`` is an interactive, SSL-capable man-in-the-middle proxy for HTTP +with a console interface. + +``mitmdump`` is the command-line version of mitmproxy. Think tcpdump for HTTP. + +``libmproxy`` is the library that mitmproxy and mitmdump are built on. + +Documentation & Help +-------------------- + +Documentation, tutorials and distribution packages can be found on the +mitmproxy website. + +|site| + +Installation Instructions are available in the docs. + +|docs| + +You can join our developer chat on Slack. + +|slack| + +Features +-------- + +- Intercept HTTP requests and responses and modify them on the fly. +- Save complete HTTP conversations for later replay and analysis. +- Replay the client-side of an HTTP conversations. +- Replay HTTP responses of a previously recorded server. +- Reverse proxy mode to forward traffic to a specified server. +- Transparent proxy mode on OSX and Linux. +- Make scripted changes to HTTP traffic using Python. +- SSL certificates for interception are generated on the fly. +- And much, much more. + +``mitmproxy`` is tested and developed on OSX, Linux and OpenBSD. +On Windows, only mitmdump is supported, which does not have a graphical user interface. + + + +Hacking +------- + +To get started hacking on mitmproxy, make sure you have Python_ 2.7.x. with +virtualenv_ installed (you can find installation instructions for virtualenv here_). +Then do the following: + +.. code-block:: none + + git clone https://github.com/mitmproxy/mitmproxy.git + git clone https://github.com/mitmproxy/netlib.git + git clone https://github.com/mitmproxy/pathod.git + cd mitmproxy + source ./dev + + +The *dev* script will create a virtualenv environment in a directory called +"venv.mitmproxy", and install all of mitmproxy's development requirements, plus +all optional modules. The primary mitmproxy components - mitmproxy, netlib and +pathod - are all installed "editable", so any changes to the source in the git +checkouts will be reflected live in the virtualenv. + +To confirm that you're up and running, activate the virtualenv, and run the +mitmproxy test suite: + +.. code-block:: none + + . ../venv.mitmproxy/bin/activate # ..\venv.mitmproxy\Scripts\activate.bat on Windows + nosetests ./test + +Note that the main executables for the project - ``mitmdump``, ``mitmproxy`` and +``mitmweb`` - are all created within the virtualenv. After activating the +virtualenv, they will be on your $PATH, and you can run them like any other +command: + +.. code-block:: none + + mitmdump --version + +For convenience, the project includes an autoenv_ file (`.env`_) that +auto-activates the virtualenv when you cd into the mitmproxy directory. + + +Testing +------- + +If you've followed the procedure above, you already have all the development +requirements installed, and you can simply run the test suite: + +.. code-block:: none + + nosetests --with-cov --cov-report term-missing + +Please ensure that all patches are accompanied by matching changes in the test +suite. The project maintains 100% test coverage. + + +Docs +---- + +The mitmproxy documentation is build using Sphinx_, which is installed automatically if you set up a development +environment as described below. +After installation, you can render the documentation like this: + +.. code-block:: none + + cd docs + make clean + make html + make livehtml + +The last command invokes `sphinx-autobuild`_, which watches the Sphinx directory and rebuilds +the documentation when a change is detected. + + +.. |site| image:: https://img.shields.io/badge/https%3A%2F%2F-mitmproxy.org-blue.svg + :target: https://mitmproxy.org/ + :alt: mitmproxy.org + +.. |docs| image:: https://readthedocs.org/projects/mitmproxy/badge/ + :target: http://docs.mitmproxy.org/en/latest/ + :alt: Documentation + +.. |slack| image:: http://slack.mitmproxy.org/badge.svg + :target: http://slack.mitmproxy.org/ + :alt: Slack Developer Chat + +.. |travis| image:: https://img.shields.io/travis/mitmproxy/mitmproxy/master.svg + :target: https://travis-ci.org/mitmproxy/mitmproxy + :alt: Build Status + +.. |coveralls| image:: https://img.shields.io/coveralls/mitmproxy/mitmproxy/master.svg + :target: https://coveralls.io/r/mitmproxy/mitmproxy + :alt: Coverage Status + +.. |downloads| image:: https://img.shields.io/pypi/dm/mitmproxy.svg?color=orange + :target: https://pypi.python.org/pypi/mitmproxy + :alt: Downloads + +.. |latest-release| image:: https://img.shields.io/pypi/v/mitmproxy.svg + :target: https://pypi.python.org/pypi/mitmproxy + :alt: Latest Version + +.. |python-versions| image:: https://img.shields.io/pypi/pyversions/mitmproxy.svg + :target: https://pypi.python.org/pypi/mitmproxy + :alt: Supported Python versions + +.. _Python: https://www.python.org/ +.. _virtualenv: https://virtualenv.pypa.io/en/latest/ +.. _here: https://virtualenv.pypa.io/en/latest/installation.html +.. _autoenv: https://github.com/kennethreitz/autoenv +.. _.env: https://github.com/mitmproxy/mitmproxy/blob/master/.env +.. _Sphinx: http://sphinx-doc.org/ +.. _sphinx-autobuild: https://pypi.python.org/pypi/sphinx-autobuild diff --git a/README.txt b/README.txt deleted file mode 100644 index 7a86dca01..000000000 --- a/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -**mitmproxy** is an interactive, SSL-capable man-in-the-middle proxy for HTTP -with a console interface. - -**mitmdump** is the command-line version of mitmproxy. Think tcpdump for HTTP. - -**libmproxy** is the library that mitmproxy and mitmdump are built on. - -Complete documentation and a set of practical tutorials is included in the -distribution package, and is also available at mitmproxy.org_. - -.. _mitmproxy.org: http://mitmproxy.org diff --git a/docs/install.rst b/docs/install.rst index b3afa6d01..35de18e54 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -94,7 +94,7 @@ get set up to contribute to the project, install Python as outlined above, then Hacking_ section of the README on GitHub. -.. _Hacking: https://github.com/mitmproxy/mitmproxy/blob/master/README.mkd#hacking +.. _Hacking: https://github.com/mitmproxy/mitmproxy/blob/master/README.rst#hacking .. _mitmproxy.org: https://mitmproxy.org/ .. _`Python website`: https://www.python.org/downloads/windows/ .. _pip: https://pip.pypa.io/en/latest/installing.html diff --git a/setup.py b/setup.py index 4f064b9a3..30556c16e 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ from libmproxy import version here = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(here, 'README.txt'), encoding='utf-8') as f: +with open(os.path.join(here, 'README.rst'), encoding='utf-8') as f: long_description = f.read() # Core dependencies