#457: Tapping into HTTP
About the show
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
- Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
- Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: httptap
- Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with waterfall timelines, compact summaries, or metrics-only output.
- Features
- Phase-by-phase timing – precise measurements built from httpcore trace hooks (with sane fallbacks when metal-level data is unavailable).
- All HTTP methods – GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS with request body support.
- Request body support – send JSON, XML, or any data inline or from file with automatic Content-Type detection.
- IPv4/IPv6 aware – the resolver and TLS inspector report both the address and its family.
- TLS insights – certificate CN, expiry countdown, cipher suite, and protocol version are captured automatically.
- Multiple output modes – rich waterfall view, compact single-line summaries, or
-metrics-onlyfor scripting. - JSON export – persist full step data (including redirect chains) for later processing.
- Extensible – clean Protocol interfaces for DNS, TLS, timing, visualization, and export so you can plug in custom behavior.
- Example:

Brian #2: 10 Smart Performance Hacks For Faster Python Code
- Dido Grigorov
- A few from the list
- Use math functions instead of operators
- Avoid exception handling in hot loops
- Use itertools for combinatorial operations - huge speedup
- Use bisect for sorted list operations - huge speedup
Michael #3: FastRTC
- The Real-Time Communication Library for Python: Turn any python function into a real-time audio and video stream over WebRTC or WebSockets.
- Features
- 🗣️ Automatic Voice Detection and Turn Taking built-in, only worry about the logic for responding to the user.
- 💻 Automatic UI - Use the
.ui.launch()method to launch the webRTC-enabled built-in Gradio UI. - 🔌 Automatic WebRTC Support - Use the
.mount(app)method to mount the stream on a FastAPI app and get a webRTC endpoint for your own frontend! - ⚡️ Websocket Support - Use the
.mount(app)method to mount the stream on a FastAPI app and get a websocket endpoint for your own frontend! - 📞 Automatic Telephone Support - Use the
fastphone()method of the stream to launch the application and get a free temporary phone number! - 🤖 Completely customizable backend - A
Streamcan easily be mounted on a FastAPI app so you can easily extend it to fit your production application. See the Talk To Claude demo for an example of how to serve a custom JS frontend.
Brian #4: Explore Python dependencies with <code>pipdeptree</code> and <code>uv pip tree</code>
- Suggested by Nicholas Carsner
- We have covered it, but in 2017 on episode 17.
- pipdeptree
- Use
pipdeptree --python autoto allow it to read your venv
- Use
- uv pip tree
- Also check out
uv pip treeand some useful flags--show-version-specifiersto show the rules--outdatednotes packages that need updated
- Also check out
Extras
Brian:
- Lean TDD 0.1.1 includes an updated intro and another chapter, “Essential Components”
- VSCode Peacock Extension - color code your different projects
Joke: Sure Grandma
Episode Transcript
Collapse transcript
00:00
00:05
00:11
00:12
00:14
00:20
00:22
00:23
00:23
00:28
00:32
00:34
00:40
00:47
00:51
00:57
01:02
01:07
01:10
01:13
01:19
01:24
01:28
01:29
01:34
01:38
01:45
01:47
01:50
01:52
02:01
02:08
02:15
02:20
02:21
02:25
02:30
02:31
02:32
02:33
02:35
02:41
02:42
02:45
02:48
02:52
02:54
02:58
03:00
03:03
03:06
03:10
03:13
03:16
03:22
03:25
03:30
03:33
03:36
03:38
03:42
03:45
03:47
03:50
03:53
03:55
03:59
04:02
04:05
04:09
04:10
04:15
04:15
04:21
04:25
04:27
04:31
04:32
04:34
04:37
04:44
04:46
04:48
04:50
04:51
04:54
04:56
04:57
05:00
05:02
05:04
05:09
05:12
05:13
05:14
05:16
05:18
05:19
05:20
05:21
05:23
05:24
05:30
05:31
05:36
05:41
05:42
05:44
05:44
05:44
05:46
05:47
05:48
05:50
05:55
06:01
06:04
06:05
06:07
06:08
06:12
06:13
06:19
06:26
06:28
06:32
06:34
06:37
06:44
06:48
06:53
07:00
07:04
07:08
07:14
07:20
07:24
07:26
07:30
07:32
07:34
07:39
07:44
07:52
07:56
07:59
08:01
08:06
08:12
08:16
08:20
08:24
08:28
08:36
08:41
08:45
08:51
08:59
09:05
09:09
09:11
09:14
09:16
09:20
09:25
09:26
09:30
09:35
09:35
09:37
09:39
09:40
09:41
09:45
09:46
09:49
09:53
09:54
09:56
09:56
09:57
09:57
10:03
10:06
10:09
10:13
10:17
10:21
10:26
10:28
10:34
10:38
10:42
10:43
10:44
10:46
10:48
10:48
10:51
10:55
10:57
11:03
11:04
11:05
11:06
11:08
11:13
11:16
11:18
11:23
11:29
11:34
11:40
11:44
11:47
11:47
11:49
11:51
11:54
12:01
12:03
12:08
12:10
12:14
12:21
12:24
12:24
12:27
12:30
12:35
12:37
12:39
12:44
12:45
12:48
12:50
12:51
12:55
12:57
13:00
13:03
13:03
13:05
13:07
13:12
13:15
13:23
13:26
13:30
13:33
13:36
13:43
13:46
13:50
13:52
13:55
13:56
13:59
14:01
14:05
14:07
14:08
14:10
14:17
14:20
14:21
14:26
14:28
14:33
14:38
14:39
14:41
14:42
14:46
14:52
14:55
14:59
15:00
15:01
15:04
15:05
15:05
15:08
15:08
15:14
15:20
15:22
15:25
15:31
15:33
15:35
15:36
15:37
15:42
15:44
15:45
15:48
15:50
15:55
15:57
16:00
16:05
16:06
16:06
16:09
16:10
16:15
16:17
16:19
16:21
16:24
16:26
16:27
16:29
16:33
16:36
16:39
16:40
16:48
16:49
16:51
16:54
16:57
17:01
17:06
17:07
17:09
17:11
17:13
17:17
17:20
17:21
17:23
17:27
17:34
17:36
17:42
17:46
17:51
17:56
18:04
18:10
18:16
18:23
18:29
18:36
18:44
18:49
18:56
19:03
19:08
19:13
19:18
19:24
19:30
19:37
19:41
19:47
19:55
19:58
20:02
20:04
20:08
20:11
20:15
20:18
20:21
20:22
20:23
20:24
20:26
20:28
20:31
20:32
20:35
20:39
20:46
20:56
20:59
21:05
21:08
21:08
21:10
21:11
21:11
21:12
21:14
21:14
21:19
21:21
21:22
21:24
21:25
21:28
21:33
21:36
21:37
21:38
21:38
21:39
21:41
21:41
21:43
21:51
21:58
22:04
22:10
22:16
22:23
22:25
22:29
22:33
22:34
22:36
22:39
22:45
22:46
22:48
22:54
22:59
23:00
23:02
23:05
23:07
23:09
23:10
23:11
23:13
23:14
23:21
23:28
23:33
23:41
23:46
23:48
23:52
23:54
23:58
24:00
24:03
24:04
24:05
24:08
24:09
24:12
24:13
24:15
24:17
24:22
24:25
24:29
24:31
24:36
24:38
24:43
24:54
25:00
25:06
25:07
25:10
25:11
25:14
25:15
25:16
25:18
25:19
25:20
25:23
25:27
25:31
25:35
25:39
25:43
25:47
25:50
25:51
25:52
25:54
25:55
25:55
25:57
26:03
26:05
26:08
26:11
26:12
26:12
26:13
26:14
26:14
26:18
26:19
26:20
26:22
26:25
26:25
26:32
26:37
26:41
26:53
26:58
27:01
27:08
27:13
27:19
27:24
27:30
27:35
27:41
27:46
27:54



