Draco es una herramienta de línea de comandos escrita en Rust para extraer contenido web y devolverlo en Markdown limpio junto con metadatos estructurados. Su propuesta de valor principal es funcionar como una alternativa más ligera a Firecrawl y Browserbase, ya que no depende de Node, ni de una flota de Chrome sin interfaz, ni del arranque de un navegador por cada petición. Para superar bloqueos contra clientes automatizados, emplea una huella TLS/JA4 fiel a la de un navegador real, de modo que puede acceder a páginas que rechazan a los scrapers convencionales.
En una página HTML estándar, Draco realiza una única petición con huella de navegador y parsea el resultado en aproximadamente 300 milisegundos. Su pipeline de Markdown replica la extracción determinista de contenido principal de Firecrawl y la convierte mediante un conversor equivalente a Turndown/GFM, todo implementado de forma nativa en Rust. El proyecto también gestiona SPAs con renderizado en el cliente: cuando detecta que el HTML inicial es solo una envoltura casi vacía, hidrata el shell en un aislado de V8 dentro del propio proceso (restaurado a partir de una instantánea tomada en tiempo de compilación, en pocos milisegundos, con JIT activado), serializa el DOM vivo y vuelve a ejecutar el mismo motor de contenido sobre él. El aislado actúa como un oracle de descubrimiento y no como renderizador: las solicitudes de datos se responden con stubs sintéticos y el JavaScript de la página no tiene bindings con el host, por lo que no puede realizar E/S.
Para los sitios que cargan datos desde sus propias APIs tras la hidratación, Draco escala por niveles desde el más barato al más caro: estado estático embebido (NEXT_DATA, JSON-LD, window.NUXT), repetición del build-id de Next.js y, en último término, interceptación en tiempo de ejecución mediante el aislado de V8. Una vez localizadas las peticiones de datos, las clasifica y reproduce la mejor candidata con el cliente stealth, de modo que se puede extraer información estructurada de SPAs puramente CSR sin necesidad de un navegador. Además, puede ejecutarse como un demonio HTTP persistente con una API REST compatible con Firecrawl, lo que permite que los clientes existentes apunten a él sin cambios.
