
Obscura เป็น headless browser engine โอเพ่นซอร์สที่เขียนด้วย Rust ออกแบบมาเฉพาะสำหรับ AI agent และ web scraping โดยเฉพาะ ตัวมันรัน JavaScript จริงผ่าน V8 (via Deno runtime), รองรับ Chrome DevTools Protocol (CDP) และที่สำคัญที่สุด - มันเป็น drop-in replacement สำหรับ headless Chrome กับ Puppeteer และ Playwright
เป้าหมายคือ: เบา ลอบ และเร็ว โดยไม่ต้องติดตั้ง Chrome เลย
Obscura | Headless Chrome | |
|---|---|---|
RAM ต่อ instance | 30 MB | 200+ MB |
ขนาด binary | 70 MB | 300+ MB |
Anti-detection | built-in | ต้องใช้ plugin เสริม |
Page load (static) | 51 ms | ~500 ms |
Page load (JS+XHR) | 84 ms | ~800 ms |
Page load (dynamic) | 78 ms | ~700 ms |
Puppeteer/Playwright | ✅ | ✅ |
ต้องติดตั้ง Chrome? | ไม่ | ใช่ |
ต่างกันแบบชัดเจน - ใช้ RAM น้อยกว่า 6-7 เท่า และเร็วกว่า 8-10 เท่า
Obscura แบ่งเป็น 6 crates ใน Cargo workspace:
obscura-cli - CLI entry point (binary
obscura+obscura-worker)obscura-browser - Core browser orchestration (page loading, navigation, rendering)
obscura-cdp - Chrome DevTools Protocol server (WebSocket, CDP messages)
obscura-dom - HTML/DOM parsing ใช้ html5ever + CSS selector matching จาก Servo
obscura-js - JavaScript runtime ผ่าน V8 ด้วย deno_core 0.350
obscura-net - HTTP networking layer + stealth features ใช้ reqwest/wreq
ส่วนที่น่าสนใจคือ obscura-dom ใช้ parser จาก Mozilla Servo project โดยตรง (html5ever, selectors crate) และ obscura-js ฝัง V8 ผ่าน Deno core - ไม่ใช่ headless browser แบบจำลอง แต่รัน JS จริงบน V8 engine
สำหรับคนทำ scraping หรือ AI agent ที่ต้อง browse web โดยไม่โดนจับ นี่คือ killer feature:
สุ่ม GPU, screen, canvas, audio, battery fingerprint ทุก session
สร้าง
navigator.userAgentDataที่ดูจริง (Chrome 145, high-entropy values)event.isTrusted = trueสำหรับ dispatched eventsซ่อน internal properties (ผ่าน
Object.keys(window)ไม่เห็น)Native function masking (
Function.prototype.toString()return[native code])navigator.webdriver = undefined
บล็อก tracking domains ถึง 3,520 โดเมน ครอบคลุม analytics, ads, telemetry, fingerprinting scripts
นั่นหมายความว่าไม่ต้องติดตั้ง puppeteer-extra-plugin-stealth แยก - มัน built-in มาให้เลย
Obscura รองรับ CDP domains เหล่านี้:
Target - จัดการ browser targets/sessions
Page - navigation, screenshot, DOM events
Runtime - JS evaluation, console API
DOM - DOM tree inspection
Network - request/response monitoring
Fetch - network interception (enable, continueRequest, fulfillRequest, failRequest)
Storage - cookies, local storage
Input - mouse/keyboard simulation
LP (custom) -
LP.getMarkdown- แปลง DOM เป็น Markdown โดยเฉพาะสำหรับ AI/LLM consumption
จุดพิเศษคือ LP.getMarkdown - เป็น custom CDP method ที่แปลงหน้าเว็บเป็น Markdown โดยเฉพาะ ออกแบบมาเพื่อให้ LLM อ่านง่าย
# ติดตั้ง (download binary จาก GitHub releases)
# หรือ build จาก source
cargo install obscura-cli
# ดึงหน้าเว็บคืนเป็น Markdown
obscura fetch https://example.com
# รัน CDP server (ใช้กับ Puppeteer/Playwright)
obscura serve --port 9222
# Scrape หลาย URL พร้อมกัน
obscura scrape urls.txt --concurrency 10 --stealth
# รัน JavaScript บนหน้าเว็บ
obscura fetch https://example.com --eval "document.title"
สำหรับ Puppeteer: เพียงเปลี่ยน executablePath ไปที่ binary obscura ก็ใช้ได้เลย ไม่ต้องแก้โค้ดอะไร
AI Agent developer - ที่ต้อง browse web, extract content, interact กับ pages แบบ programmatic โดยใช้ทรัพยากรน้อย
Web scraper - ที่ต้องการ JS-rendered content แบบ scale ใหญ่ โดยไม่ต้องการ overhead ของ Chrome
Security researcher - ที่ต้องการ stealthy, undetectable browsing
Automation engineer - ที่อยาก Puppeteer/Playwright-compatible replacement ที่เบากว่า
Obscura คือ headless browser รุ่นใหม่ที่ออกแบบมาเพื่อยุค AI agent - เบากว่า Chrome 6-7 เท่า เร็วกว่า 8-10 เท่า มี stealth built-in และติดตั้งง่ายแค่ single binary โดยไม่ต้องพึ่ง Chrome หรือ Node.js
ด้วย Rust เป็นภาษาหลัก + V8 ผ่าน Deno สำหรับรัน JS + Servo parser สำหรับ DOM มันไม่ใช่แค่ wrapper รอบ Chrome แต่เป็น browser engine ของตัวเองที่เขียนใหม่ทั้งหมด
1.8k stars บน GitHub หลังจาก release แค่ 2 สัปดาห์ - น่าจับตามาก
