| name | obscura-0-1-0 |
| description | Lightweight headless browser engine written in Rust for web scraping and AI agent automation. Runs JavaScript via V8, supports Chrome DevTools Protocol (CDP), and acts as a drop-in replacement for headless Chrome with Puppeteer and Playwright. Use when building scrapers, automating web interactions, replacing headless Chrome with lower memory footprint (~30 MB), or needing anti-detection capabilities. |
| license | MIT |
| author | Tangled <noreply@tangledgroup.com> |
| version | 0.1.0 |
| tags | ["headless-browser","web-scraping","rust","cdp","puppeteer","playwright","v8","anti-detection"] |
| category | web-scraping |
| external_references | ["https://github.com/h4ckf0r0day/obscura/tree/v0.1.0","https://chromedevtools.github.io/devtools-protocol/","https://github.com/h4ckf0r0day/obscura","https://github.com/h4ckf0r0day/obscura/releases/tag/v0.1.0","https://github.com/h4ckf0r0day/obscura/releases"] |
Obscura 0.1.0
Overview
Obscura is a headless browser engine written in Rust, built for web scraping and AI agent automation. It runs real JavaScript via V8 (through Deno Core), supports the Chrome DevTools Protocol (CDP), and acts as a drop-in replacement for headless Chrome when used with Puppeteer and Playwright.
Designed for automation at scale rather than desktop browsing, Obscura achieves dramatic resource savings:
- Memory: ~30 MB vs 200+ MB for headless Chrome
- Binary size: ~70 MB vs 300+ MB
- Page load: 51–85 ms vs ~500–800 ms
- Startup: Instant vs ~2 seconds
- Anti-detection: Built-in (with
--stealth feature)
Single binary. No Chrome, no Node.js, no external dependencies.
When to Use
- Web scraping at scale with minimal memory footprint
- AI agent automation that needs real JavaScript execution
- Replacing headless Chrome in Puppeteer or Playwright workflows
- Environments where anti-detection is required (stealth mode)
- Parallel URL processing with concurrent worker processes
- Converting rendered HTML pages to Markdown via CDP
Core Concepts
Architecture
Obscura is a Rust workspace with six crates:
- obscura-cli — Command-line interface (
obscura and obscura-worker binaries)
- obscura-browser — Browser context, page lifecycle, navigation
- obscura-cdp — Chrome DevTools Protocol server implementation
- obscura-dom — HTML5 DOM tree (via html5ever), CSS selectors
- obscura-js — JavaScript runtime (Deno Core + V8 engine)
- obscura-net — HTTP client, cookies, robots.txt, tracker blocklist
Three Modes of Operation
- CLI fetch — Single-page fetch with
obscura fetch <url>
- CDP server — WebSocket server for Puppeteer/Playwright via
obscura serve
- Parallel scrape — Multi-URL scraping with
obscura scrape url1 url2 ...
Page Lifecycle
Pages progress through lifecycle states: Idle → Loading → DomContentLoaded → → . Navigation supports wait conditions: , , , .