惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
爱范儿
爱范儿
罗磊的独立博客
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
U
Unit 42
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
H
Help Net Security
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理

Posts on mitmproxy.org

Mitmproxy 12: Interactive Contentviews Intercepting Linux Applications Mitmproxy 11: Full HTTP/3 Support Mitmproxy 10.4: Mitmweb Capture Tab Intercepting Windows Applications Intercepting macOS Applications Mitmproxy 10.1: HAR Support Mitmproxy 10: First Bits of HTTP/3! A more user-friendly transparent mode, based on WireGuard Mitmproxy 9 Mitmproxy 8 Google Summer of Code 2021 Mitmproxy 7 A New Proxy Core, Sans I/O Mitmproxy 6 Mitmproxy 5.3 Mitmproxy 5.2 Mitmproxy 5 Google Summer of Code 2018 Mitmproxy 3
Mitmproxy 4
Aldo Cortesi · 2018-05-15 · via Posts on mitmproxy.org
15 May 2018,

We’ve just released mitmproxy v4.0, and it’s an absolute corker. Among the usual long list of bugfixes and improvements, one thing stands out: speed. Users should see about 4x improvement in core request throughput for mitmdump, and a 10x or more improvement for mitmproxy console. Let’s dig into the details.

Speed!

At its core, mitmproxy co-ordinates communication by shunting messages between client connection threads and a single main controller thread. The mechanics of this process has always been a drag on our performance, especially when interactive event loops enter the picture. This release shifts the core controller thread to Python’s built-in asyncio event loop. The result is rather remarkable: a roughly 4x speedup in mitmdump, and a more than 10x speedup for mitmproxy console.

Console key binding configuration

The key bindings for mitmproxy console can now be configured through the keys.yaml file, under the mitmproxy configuration directory (~/.mitmproxy). Here’s an example of this file’s syntax:

-
  # Simple global binding
  key: ctrl a
  cmd: replay.client @marked
-
  # Bind key only in the flowlist
  key: "1"
  ctx: ["flowlist"]
  cmd: console.nav.down
  help: Go to next flow

Please see the docs for more information.

Other notable changes

There are a number of other changes to note:

  • Mitmproxy now only supports Python 3.6 and newer. The immediate reason for this shift is improvements to the the asyncio module in 3.6. We plan to be fairly aggressive about deprecating support for older versions of Python from here on.
  • The --conf and --cadir command-line flags have been removed, and replaced with --confdir. This flag directs mitmproxy to use a specified configuration directory, with all the configuration files it might contain.
  • The allow_remote option has been replaced by the much more flexible block_global and block_private options.
  • We no longer magically capture print statements in addons and turn them into logs. Please use the ctx.log.* functions explicitly.

Release cadence

This release sees a shift in the mitmproxy project’s release cadence. It’s been just less than three months since the release of v3.0, and we intend to maintain this pace into the future. Henceforth, you should expect mitmproxy releases at approximately 2-3 month intervals.

GSoC

We’re also very happy to announce that the project will host two brilliant students under the Google Summer of Code 2018 program this year. GSoC has played an important role in mitmproxy’s history - it’s an opportunity for us to induct talented co-conspirators into the project as full contributors.

Roman Samoilenko (@kajojify) will be working on the new command language for mitmproxy. This is the glue that binds together mitmproxy and its addons through a system of flexible, typed commands. Once this is in place, it will make entirely new patterns of interaction with mitmproxy possible.

Pietro Tirenna (@madt1m) will be modernising mitmproxy’s serialisation format. The new format will allow random access and in-place modification of flows and provide APIs for storing auxiliary flow data. This is a critical change that will set the stage for a huge slew of improvements to mitmproxy in coming releases.

We’d like to thank Roman and Pietro for tackling two very ambitious and important projects with us.