diff --git a/CHANGELOG b/CHANGELOG index 320d3391e..2b585bd57 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,33 @@ +18 December 2016: mitmproxy 1.0 + + * All mitmproxy tools are now Python 3 only! We plan to support Python 3.5 and higher. + + * Web-Based User Interface: Mitmproxy now offically has a web-based user interface + called mitmweb. We consider it stable for all features currently exposed + in the UI, but it still misses a lot of mitmproxy’s options. + + * Windows Compatibility: With mitmweb, mitmproxy is now useable on Windows. + We are also introducing an installer (kindly sponsored by BitRock) that + simplifies setup. + + * Configuration: The config file format is now a single YAML file. In most cases, + converting to the new format should be trivial - please see the docs for + more information. + + * Console: Significant UI improvements - including sorting of flows by + size, type and url, status bar improvements, much faster indentation for + HTTP views, and more. + + * HTTP/2: Significant improvements, but is temporarily disabled by default + due to wide-spread protocol implementation errors on some large website + + * WebSocket: The protocol implementation is now mature, and is enabled by + default. Complete UI support is coming in the next release. Hooks for + message interception and manipulation are available. + + * A myriad of other small improvements throughout the project. + + 16 October 2016: mitmproxy 0.18 * Python 3 Compatibility for mitmproxy and pathod (Shadab Zafar, GSoC 2016) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a615ec196..b1d609d1c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,6 +1,6 @@ - 2184 Aldo Cortesi - 1745 Maximilian Hils - 507 Thomas Kriechbaumer + 2407 Aldo Cortesi + 1873 Maximilian Hils + 556 Thomas Kriechbaumer 258 Shadab Zafar 97 Jason 83 Marcelo Glezer @@ -11,85 +11,91 @@ 14 Pedro Worcel 14 David Weinstein 13 Thomas Roth - 11 Stephen Altamirano 11 Jake Drahos + 11 Stephen Altamirano 11 arjun23496 11 Justus Wingert - 10 Sandor Nemes - 10 Zohar Lorberbaum 10 András Veres-Szentkirályi - 10 Chris Czub + 10 Zohar Lorberbaum 10 smill + 10 Chris Czub + 10 Sandor Nemes + 10 Doug Freed 9 ikoz - 9 Kyle Morton 9 Legend Tang 9 Rouli + 9 Kyle Morton 8 Jason A. Novak 8 Chandler Abraham - 7 Alexis Hildebrandt 7 Matthias Urlichs 7 Brad Peabody 7 dufferzafar + 7 Alexis Hildebrandt 6 Felix Yan - 5 Tomaz Muraus - 5 elitest - 5 iroiro123 - 5 Sam Cleveland - 5 Choongwoo Han 5 Will Coster - 4 root - 4 Clemens Brunner + 5 Sam Cleveland + 5 iroiro123 + 5 elitest + 5 Tomaz Muraus + 5 Choongwoo Han 4 Schamper - 4 Valtteri Virtanen - 4 Wade 524 4 Youhei Sakurai 4 Bryan Bishop + 4 root + 4 Valtteri Virtanen + 4 Clemens Brunner 4 Marc Liyanage - 4 Michael J. Bazzinotti + 4 Wade 524 + 4 chhsiao90 4 yonder - 3 Eli Shvartsman - 3 Chris Neasbitt - 3 Guillem Anguera - 3 MatthewShao + 4 Michael J. Bazzinotti 3 Ryan Welton - 3 smill@cuckoo.sh - 3 Manish Kumar - 3 Benjamin Lee 3 Ryan Laughlin - 3 Zack B 3 Kyle Manna + 3 Eli Shvartsman + 3 Vincent Haupert + 3 Manish Kumar + 3 Zack B + 3 MatthewShao 3 redfast00 3 requires.io + 3 Guillem Anguera + 3 smill@cuckoo.sh + 3 Chris Neasbitt + 3 Benjamin Lee + 2 Steven Van Acker + 2 Slobodan Mišković + 2 Jim Lloyd 2 isra17 2 israel - 2 Colin Bendell + 2 Sean Coates + 2 Sachin Kelkar 2 jpkrause - 2 Paul + 2 Bennett Blodinger 2 lilydjwg 2 Michael Frister - 2 依云 - 2 Jaime Soriano Pastor - 2 Nick Badger - 2 Rob Wills - 2 Heikki Hannikainen - 2 Vincent Haupert - 2 strohu - 2 Wade Catron - 2 Krzysztof Bielicki - 2 Sachin Kelkar 2 Israel Nir - 2 Anant - 2 alts - 2 Doug Freed - 2 Niko Kommenda - 2 Terry Long - 2 Mark E. Haase - 2 Steven Van Acker - 2 Jim Lloyd - 2 Bennett Blodinger - 2 Sean Coates 2 Cory Benfield - 1 Sergey Chipiga + 2 phackt + 2 Anant + 2 Jaime Soriano Pastor + 2 Paul + 2 Colin Bendell + 2 依云 + 2 Heikki Hannikainen + 2 Rob Wills + 2 Niko Kommenda + 2 Naveen Pai + 2 strohu + 2 alts + 2 Yoginski + 2 Mark E. Haase + 2 Wade Catron + 2 Terry Long + 2 Krzysztof Bielicki + 2 Nick Badger + 1 Nicolas Esteves + 1 Andrew Orr 1 Andrey Plotnikov 1 Andy Smith 1 Angelo Agatino Nicolosi @@ -97,6 +103,7 @@ 1 BSalita 1 Ben Lerner 1 Bradley Baetz + 1 Brady Law 1 Brett Randall 1 Chris Hamant 1 Christian Frichot @@ -105,6 +112,7 @@ 1 David Shaw 1 Doug Lethin 1 Drake Caraker + 1 Edgar Boda-Majer 1 Eric Entzel 1 Felix Wolfsteller 1 FreeArtMan @@ -128,22 +136,25 @@ 1 Mathieu Mitchell 1 Michael Bisbjerg 1 Mike C + 1 Mike Fotinakis 1 Mikhail Korobov 1 Morton Fox 1 Nick HS 1 Nick Raptis - 1 Nicolas Esteves + 1 Aditya 1 Oleksandr Sheremet 1 Parth Ganatra 1 Pritam Baral + 1 Quentin Pradet 1 Rich Somerfield 1 Rory McCann 1 Rune Halvorsen 1 Ryo Onodera + 1 Sahil Chelaramani 1 Sahn Lam 1 Sanchit Sokhey 1 Seppo Yli-Olli - 1 Aditya + 1 Sergey Chipiga 1 Stefan Wärting 1 Steve Phillips 1 Steven Noble @@ -158,10 +169,8 @@ 1 Ulrich Petri 1 Vyacheslav Bakhmutov 1 Wes Turner - 1 Yoginski 1 Yuangxuan Wang 1 capt8bit - 1 chhsiao90 1 cle1000 1 davidpshaw 1 deployable @@ -172,7 +181,6 @@ 1 meeee 1 michaeljau 1 peralta - 1 phackt 1 phil plante 1 sentient07 1 sethp-jive diff --git a/docs/config.rst b/docs/config.rst index ad55baed0..1b0921ecc 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -3,84 +3,11 @@ Configuration ============= -Mitmproxy is configured through a set of files in the users ~/.mitmproxy -directory. +Mitmproxy is configured with a YAML_ file, located at +``~/.mitmproxy/config.yaml``. We'll have complete documentation for all +supported options in the next release in the meantime, please consult the +source_ for a complete list of options and types. -mitmproxy.conf - Settings for the :program:`mitmproxy`. This file can contain any options supported by - mitmproxy. -mitmdump.conf - Settings for the :program:`mitmdump`. This file can contain any options supported by mitmdump. - -common.conf - Settings shared between all command-line tools. Settings in this file are over-ridden by those - in the tool-specific files. Only options shared by mitmproxy and mitmdump should be used in - this file. - -Syntax ------- - -Comments -^^^^^^^^ - -.. code-block:: none - - # this is a comment - ; this is also a comment (.ini style) - --- and this is a comment too (yaml style) - -Key/Value pairs -^^^^^^^^^^^^^^^ - -- Keys and values are case-sensitive -- Whitespace is ignored -- Lists are comma-delimited, and enclosed in square brackets - -.. code-block:: none - - name = value # (.ini style) - name: value # (yaml style) - --name value # (command-line option style) - - fruit = [apple, orange, lemon] - indexes = [1, 12, 35 , 40] - -Flags -^^^^^ - -These are boolean options that take no value but true/false. - -.. code-block:: none - - name = true # (.ini style) - name - --name # (command-line option style) - -Options -------- - -The options available in the config files are precisely those available as -command-line flags, with the key being the option's long name. To get a -complete list of these, use the ``--help`` option on each of the tools. Be -careful to only specify common options in the **common.conf** file - -unsupported options in this file will be detected as an error on startup. - -Examples --------- - -common.conf -^^^^^^^^^^^ - -Note that ``--port`` is an option supported by all tools. - -.. code-block:: none - - port = 8080 - -mitmproxy.conf -^^^^^^^^^^^^^^ - -.. code-block:: none - - palette = light +.. _YAML: http://www.yaml.org/start.html +.. _source: https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/options.py diff --git a/mitmproxy/io_compat.py b/mitmproxy/io_compat.py index 7a2e47735..9f73693ef 100644 --- a/mitmproxy/io_compat.py +++ b/mitmproxy/io_compat.py @@ -81,6 +81,11 @@ def convert_018_019(data): return data +def convert_019_100(data): + data["version"] = (1, 0, 0) + return data + + def _convert_dict_keys(o: Any) -> Any: if isinstance(o, dict): return {strutils.native(k): _convert_dict_keys(v) for k, v in o.items()} @@ -128,6 +133,7 @@ converters = { (0, 16): convert_016_017, (0, 17): convert_017_018, (0, 18): convert_018_019, + (0, 19): convert_019_100, } diff --git a/mitmproxy/version.py b/mitmproxy/version.py index 922c32184..b6cf0e174 100644 --- a/mitmproxy/version.py +++ b/mitmproxy/version.py @@ -1,4 +1,4 @@ -IVERSION = (0, 19) +IVERSION = (1, 0, 0) VERSION = ".".join(str(i) for i in IVERSION) PATHOD = "pathod " + VERSION MITMPROXY = "mitmproxy " + VERSION