Skip to content

blasthttp 0.2.0: shared event loop (eliminate executor bridge) - #3021

Merged
liquidsec merged 1 commit into
blasthttp-integration-cleanfrom
blasthttp-integration-sharedloop
Apr 3, 2026
Merged

blasthttp 0.2.0: shared event loop (eliminate executor bridge)#3021
liquidsec merged 1 commit into
blasthttp-integration-cleanfrom
blasthttp-integration-sharedloop

Conversation

@liquidsec

Copy link
Copy Markdown
Collaborator

Summary

  • Upgrade to blasthttp 0.2.0 which returns native Python coroutines via pyo3-async-runtimes
  • Replace all run_in_executor_io() wrappers around blasthttp calls with direct await
  • Shrink IO thread pool (only remaining caller is wafw00f)
  • Remove thread pool backlog status line (no longer relevant)

Affected modules: web.py, http.py, web_brute.py

@liquidsec
liquidsec changed the base branch from 3.0 to blasthttp-integration-clean April 3, 2026 04:34
@liquidsec
liquidsec merged commit 5fbcbf1 into blasthttp-integration-clean Apr 3, 2026
4 of 16 checks passed
@github-actions

github-actions Bot commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

📊 Performance Benchmark Report

Comparing 3.0 (baseline) vs blasthttp-integration-sharedloop (current)

📈 Detailed Results (All Benchmarks)

📋 Complete results for all benchmarks - includes both significant and insignificant changes

🧪 Test Name 📏 Base 📏 Current 📈 Change 🎯 Status
Bloom Filter Dns Mutation Tracking Performance 4.25ms 4.16ms -2.0%
Bloom Filter Large Scale Dns Brute Force 17.30ms 17.08ms -1.3%
Large Closest Match Lookup 353.24ms 346.32ms -2.0%
Realistic Closest Match Workload 188.79ms 187.86ms -0.5%
Event Memory Medium Scan 1784 B/event 1772 B/event -0.7%
Event Memory Large Scan 1768 B/event 1760 B/event -0.5%
Event Validation Full Scan Startup Small Batch 411.91ms 415.19ms +0.8%
Event Validation Full Scan Startup Large Batch 579.66ms 576.98ms -0.5%
Make Event Autodetection Small 30.82ms 30.98ms +0.5%
Make Event Autodetection Large 316.12ms 316.27ms +0.0%
Make Event Explicit Types 14.06ms 13.81ms -1.8%
Excavate Single Thread Small 3.989s 3.985s -0.1%
Excavate Single Thread Large 9.592s 9.612s +0.2%
Excavate Parallel Tasks Small 4.127s 4.132s +0.1%
Excavate Parallel Tasks Large 7.236s 6.549s -9.5%
Is Ip Performance 3.15ms 3.19ms +1.2%
Make Ip Type Performance 11.50ms 11.43ms -0.6%
Mixed Ip Operations 4.48ms 4.48ms -0.1%
Memory Use Web Crawl 47.0 MB 258.9 MB +450.9% 🔴🔴🔴 ⚠️
Memory Use Subdomain Enum 19.3 MB 19.3 MB -0.3%
Scan Throughput 100 8.101s 4.474s -44.8% 🟢🟢🟢 🚀
Scan Throughput 1000 40.719s 36.385s -10.6% 🟢🟢 🚀
Typical Queue Shuffle 65.97µs 64.37µs -2.4%
Priority Queue Shuffle 737.05µs 729.91µs -1.0%

🎯 Performance Summary

+ 2 improvements 🚀
! 1 regression ⚠️
  21 unchanged ✅

🔍 Significant Changes (>10%)

  • Memory Use Web Crawl: 450.9% 🐌 more memory
  • Scan Throughput 100: 44.8% 🚀 faster
  • Scan Throughput 1000: 10.6% 🚀 faster

🐍 Python Version 3.11.15

@liquidsec liquidsec mentioned this pull request Jun 9, 2026
@ausmaster
ausmaster deleted the blasthttp-integration-sharedloop branch June 11, 2026 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants