VoidCrawl
VoidCrawl is a Rust-native Chrome DevTools Protocol △ (CDP) client exposed to Python via PyO3 ○. It replaces Playwright ◑ and Selenium ◇ with a permissively-licensed (Apache-2.0) stack for rendering JavaScript-heavy pages, controlling browsers, and automating web interactions.
Built on chromiumoxide with a shared Tokio ★ runtime, VoidCrawl gives you async-first browser automation with near-zero overhead tab reuse.
How Yosoi Uses VoidCrawl
Yosoi uses VoidCrawl as its browser automation backend. When a page requires JavaScript rendering before selector discovery can begin, VoidCrawl handles the headless browsing — launching tabs, waiting for content, and returning the fully rendered DOM for Yosoi to analyse.
Key Features
- Rust-native performance — CDP commands run in a compiled Tokio runtime, not a Node.js subprocess.
- Async-first — Every API is
async/awaitfrom the ground up. - Browser pool — Reuse tabs across tasks with near-zero overhead.
- Built-in actions — Click, type, scroll, screenshot, and evaluate JavaScript without extra dependencies.
- Docker-ready — First-class support for headless and headful containers.
FAQs
Why does Yosoi use VoidCrawl instead of Playwright or Selenium?
VoidCrawl is Apache-2.0 licensed and written in Rust via PyO3, so it avoids the Node.js subprocess overhead of Playwright and the WebDriver latency of Selenium. It also shares a single Tokio runtime across tabs for near-zero overhead reuse.
Do I need VoidCrawl to use Yosoi?
Only when your target pages require JavaScript rendering. For static HTML pages, Yosoi can work with a simple HTTP response. VoidCrawl is needed when the page content is rendered client-side.
What is the Chrome DevTools Protocol?
CDP is the low-level protocol that Chrome exposes for programmatic control — navigating pages, executing JavaScript, capturing screenshots, and intercepting network requests. VoidCrawl speaks CDP natively from Rust.
Can VoidCrawl run in Docker?
Yes. VoidCrawl has first-class support for both headless and headful Docker containers, including VNC for visual debugging.
References
△ Chrome DevTools Protocol. Google. Protocol for instrumenting, inspecting, and debugging Chromium-based browsers. https://chromedevtools.github.io/devtools-protocol/
○ PyO3. PyO3 Project. Rust bindings for the Python interpreter. https://pyo3.rs/
◑ Playwright. Microsoft. End-to-end testing and browser automation framework. https://playwright.dev/
◇ Selenium. Selenium Project. Browser automation for testing and scraping. https://www.selenium.dev/
★ Tokio. Tokio Project. Asynchronous runtime for Rust. https://tokio.rs/