Home Technology Show HN: Draco – A single-binary, self-hostable...
Technology

Show HN: Draco – A single-binary, self-hostable Firecrawl alternative in Rust

Key Points

Scraping modern websites has become a massive headache. You basically have two choices: pay for an expensive API like Firecrawl/Browserbase, or run a fleet of headless Chrome instances that eat 1GB of RAM per page and still get blocked by Cloudflare. I built Draco to fix this.

Scraping modern websites has become a massive headache. You basically have two choices: pay for an expensive API like Firecrawl/Browserbase, or run a fleet of headless Chrome instances that eat 1GB of RAM per page and still get blocked by Cloudflare.

I built Draco to fix this. It’s a fast, single-binary web scraper written in Rust. You point it at a URL, and it spits out perfectly clean Markdown or structured JSON for LLMs.

The secret sauce is that it doesn't just boot a browser for every request. It uses a tiered escalation engine:

Tier 1 (Stealth Fetch): Draco uses a custom TLS/JA4 fingerprint to perfectly mimic a real browser's network signature at the packet level. It turns out a lot of anti-bot walls will let you right through if your handshake looks correct. In my benchmarks against sites like Cloudflare and Target, Playwright ate ~500MB of RAM and timed out. Draco bypassed them in under a second using just 20MB of RAM.

Tier 2 (V8 Isolate): If it hits a React/Next.js SPA that needs rendering, Draco boots an in-process V8 engine in single-digit milliseconds. It hydrates the DOM and intercepts the hidden JSON APIs the page is calling—giving you the raw data without the overhead of a graphical browser.

Tier 3 (Real Browser): If it hits an absolute wall, it seamlessly falls back to detecting and driving a real browser on your machine.

I also built in all the tooling to make it a complete drop-in replacement for the hosted services:

Daemon Mode: Run draco serve and you get a persistent HTTP server with a Firecrawl-compatible REST API. You can swap out your API keys and self-host immediately.

Built-in MCP Server: It natively exposes a Model Context Protocol server so you can plug it directly into Claude Desktop or your AI agents.

Web Search: Built-in parallel multi-engine web search (bypassing the need for a Google Search API key).

Interact Mode: Drive a page statefully like a devtools console, persisting cookies across navigations(for LLM's mainly).

It’s completely open source (MIT/Apache-2.0). I just wanted to put this out there for anyone tired of fighting headless Chromium or paying per-page scraping costs. Grab the binary and throw a difficult URL at it.

Note that it's still a WIP so there might be some unexpected breakages of uncommon sites but for the most part its quite capable, it can handle cf-protected sites and heavy SPA's while everything else fails partially or completely while taking longer or more resources. (tested on example.com, hackernews, cloudflare, glassdoor, bluff.com, target.com, stake.com and thrill.com)

┏━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓ ┃ Rank ┃ Tool ┃ Score ┃ Pass ┃ Avg Time ┃ Avg RAM ┃ ┡━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩ │ #1 │ Draco │ 769.7 │ 8/8 │ 3.45 │ 216.50 │ │ #2 │ Obscura │ 384.5 │ 4/8 │ 2.68 │ 87.59 │ │ #3 │ BrowserOxide │ 373.4 │ 4/8 │ 6.42 │ 105.95 │ │ #4 │ Playwright │ 342.2 │ 4/8 │ 1.71 │ 535.07 │ │ #5 │ Bouncy │ 196.6 │ 2/8 │ 0.59 │ 19.38 │ └──────┴────────────────┴───────┴──────┴──────────┴─────────┘

Repo: https://github.com/0xchasercat/draco/

Comments URL: https://news.ycombinator.com/item?id=49148163

Points: 3

# Comments: 0

Firecrawl (ORG) API (ORG) Firecrawl/Browserbase (ORG) Chrome (ORG) RAM (ORG) Cloudflare (ORG) Markdown (PERSON) ~500MB (PERSON) Draco (PERSON) V8 Isolate (ORG) DOM (ORG) MCP (ORG) Claude Desktop (PERSON) AI (ORG) Google Search (ORG)
Originally published by Hacker News Read original →