Obscura: مرورگر هدلس سبک نوشتهشده با Rust
خلاصهٔ کاملتر
Obscura یه مرورگر هدلس (یعنی مرورگری بدون پنجره و رابط گرافیکی که فقط صفحه رو میگیره و رندر میکنه) متنبازه که با Rust نوشته شده. تو این مقاله اومده که Obscura جاوااسکریپت صفحه رو با موتور V8 واقعاً اجرا میکنه، پس سایتهای سنگین React و Vue و Next.js رو همونجوری میبینه که کروم میبینه. فرقش اینه که کل ابزار یه باینری تکتیکهست، بدون کروم، بدون Node و بدون وابستگی اضافه.
مشکلی که میخواد حل کنه هزینهست. یه نمونه کروم هدلس راحت بالای ۲۰۰ مگابایت رم میخوره و چند ثانیه طول میکشه تا بالا بیاد، و وقتی دهها job اسکرپ همزمان داری این عدد ضرب میشه تو تعداد. بر اساس بنچمارکهای خود پروژه، Obscura حدود ۳۰ مگابایت رم میگیره و صفحه رو تو حدود ۸۵ میلیثانیه لود میکنه، با استارت تقریباً آنی چون موتور مرورگری برای بوت شدن وجود نداره.
نصبش هم toolchain و کامپایل نمیخواد: باینری رو دانلود و از حالت فشرده خارج میکنی و تمومه. بعدش URL رو بهش میدی و میگی خروجی رو مارکداون بریزه تو فایل. تو یه تست واقعی، اسکرپ یه بلاگ شخصی کامل با صفحهٔ اصلی و تبها و چند پست حدود ۱۵ ثانیه طول کشیده و یه فایل مارکداون ۲۶۷ خطی درآورده. نویسنده میگه گاهی هشدارهای بیضرر مثل خطای اسکریپت دارکمود قالب میبینی که جلوی رندر درست صفحه رو نمیگیره.
چیزی که این ابزار رو برای کارهای AI جذاب میکنه همون خروجی مارکداونشه که بدون هیچ تبدیل اضافهای میره تو ورودی مدل زبانی. تو دموی مقاله، خروجی Obscura مستقیم pipe شده به یه مدل Qwen ۲۷ میلیارد پارامتری که لوکال روی Ollama بالا بوده و ازش خلاصهٔ پنجبندی خواستن، بدون اینکه چیزی از ماشین بیرون بره. Obscura از MCP هم پشتیبانی میکنه، یعنی یه ایجنت میتونه مستقیم صداش کنه بهجای اینکه براش اسکریپت اسکرپ بنویسی.
معماریاش عمداً کوچیک مونده: هشت تا crate (بستهٔ Rust) جدا، هر کدوم یه لایه، و یه سرور سازگار با CDP که کلاینتهای Puppeteer میتونن باهاش حرف بزنن. همهٔ صفحهها یه V8 isolate مشترک دارن، پس اجرای جاوااسکریپت با یه lock سریالی میشه. نویسنده تعارف هم نداره: Obscura هنوز جوونه و بلوغ اکوسیستم Puppeteer و Playwright رو نداره، و خروجی خامش هدر و فوتر و منو رو با خودش میاره، پس قبل از production باید یه مرحلهٔ تمیزکاری بذاری.
نکات کلیدی:
- حدود ۳۰ مگابایت رم و لود صفحه در ۸۵ میلیثانیه، در برابر بیش از ۲۰۰ مگابایت هر نمونه کروم هدلس
- یه باینری تکفایل نوشتهشده با Rust، بدون کروم، بدون Node و بدون پکیجمنیجر
- خروجی مارکداون تمیز که مستقیم به مدل زبانی لوکال روی Ollama داده میشه
- پشتیبانی از MCP، پس ایجنت میتونه Obscura رو بهعنوان ابزار روی STDIO صدا بزنه
- هشت crate با جریان یکطرفهٔ درخواست از بالا به پایین و یه V8 isolate مشترک
- خروجی خام شامل هدر و فوتر و منوئه و برای production به پاکسازی نیاز داره




