۶ اوت ۲۰۲۶، Cloudflare Kitesurf را منتشر کرد - مرورگری که نه برای انسانها، بلکه برای عوامل نوشته شده است. درون آن Chromium وجود ندارد: موتور بر روی Rust ساخته شده، در WebAssembly کامپایل شده و به طور کامل در ایزولههای V8 بر روی Workers کار میکند. شرکت ادعا میکند که در وظایف معمولی عاملان، این مرورگر ۳ تا ۷ برابر کمتر از CPU و حافظه نسبت به Chromium مصرف میکند. چهار ماه قبل از این، Obscura - که آن هم بر پایه Rust و «برای عوامل» است - بیش از ۲۲ هزار ستاره در GitHub جمعآوری کرد و Cloudflare به صراحت اعلام کرد که اولین پروتوتایپ Kitesurf، پورت Obscura بر روی Workers بوده است.
بازار موتورهای اتوماسیون تقسیم شده است: از یک طرف - رانتایمهای سبک عاملان که منابع را صرفهجویی میکنند؛ از طرف دیگر - ساختارهای سنگین Chromium که همه چیز را انجام میدهند، از جمله عبور از چالشهای ضد ربات. بیایید به حقایق نگاه کنیم که هر کلاس واقعاً چه چیزی را ارائه میدهد و صرفهجویی کجا به پایان میرسد.
بر اساس چه معیارهایی مقایسه کنیم
بنچمارکهای موتورهای مرورگر دوست دارند که سرعت و حافظه را مقایسه کنند، اما برای اسکرپینگ واقعی و عوامل، چهار محور مستقل مهم است و برنده شدن در محور اول هیچ چیزی درباره سایرین نمیگوید:
- هزینه راهاندازی - CPU و حافظه برای هر صفحه. این چیزی است که مستقیماً به صورت صورتحساب زیرساخت در هزاران جلسه موازی تبدیل میشود.
- کامل بودن وبپلتفرم - چند سایت مدرن به طور کلی به درستی رندر میشوند. در اینجا پوشش Web Platform Tests (WPT) اندازهگیری میشود.
- عبور از چالش ضد ربات - آیا جلسه TLS-Handshake، چالش JS و بررسی رفتاری را پشت سر میگذارد.
- کنترل خروجی به شبکه - آیا میتوانید مدیریت کنید که از کدام IP و کدام ASN سایت درخواست را میبیند.
Kitesurf: صرفهجویی در برابر کامل بودن
Kitesurf از ماژولها تشکیل شده است: رندر و تجزیه HTML/CSS بر روی Blitz، موتور CSS Stylo از Firefox، رانتایم JS Boa بر پایه Rust، و شکلدهی متن از طریق Parley. به گفته شرکت، توسعه ۱۲ هفته طول کشیده است.
اعداد بنچمارک Cloudflare در برابر Chromium:
- CPU برای اسکرینشات - ۳۸۰ میلیثانیه در برابر ۱۱۷۳ میلیثانیه (۳.۱ برابر کمتر)؛
- CPU برای استخراج HTML - ۲۲۹ میلیثانیه در برابر ۸۷۷ میلیثانیه (۳.۸ برابر کمتر)؛
- حافظه برای اسکرینشات - ۵۷.۸ مگابایت در برابر ۲۷۱ مگابایت (۴.۷ برابر کمتر)؛
- حافظه برای استخراج HTML - ۳۹.۴ مگابایت در برابر ۲۷۳.۷ مگابایت (۷ برابر کمتر)؛
- اما در مورد زمان اجرا، Kitesurf کندتر است: ۱۱۴۸ میلیثانیه در برابر ۶۳۷ میلیثانیه برای اسکرینشات و ۸۲۰ میلیثانیه در برابر ۴۷۲ میلیثانیه برای HTML - ۱.۷ تا ۱.۸ برابر.
این یک مبادله عادلانه است: شما با تأخیر پرداخت میکنید، اما این امکان را دارید که در یک ماشین تعداد بسیار بیشتری از جلسات موازی را نگه دارید. بر اساس استانداردهای وب، موتور برای سنش خوب عمل میکند - در زمان اعلام حدود ۲۱۵ هزار زیرآزمون WPT را گذرانده بود و در مستندات اکنون بیش از ۲۳۵ هزار اعلام شده است. پوشش بر اساس بخشها: DOM ۹۷٪، HTML ۹۶٪، Selection ۹۹٪، SVG ۹۷٪، Encoding ۹۹٪، CORS ۹۵٪، XHR ۹۵٪، URL ۸۳٪. ویکیپدیا، Hacker News و SPAهای معمولی به درستی رندر میشوند.
متصل شدن به Kitesurf به طور معمول انجام میشود: نقطه پایانی CDP (بنابراین، Puppeteer و Playwright)، MCP برای عوامل، و نقطههای پایانی REST Quick Actions برای اسکرینشات و استخراج HTML. کافی است پارامتر browser=kitesurf را اضافه کنید. نسخه بتا رایگان است، اما با محدودیتهایی برای حساب؛ منابع را وعده دادهاند که منتشر کنند.
چه چیزی Kitesurf نمیتواند انجام دهد - و این در مستندات خود آن نوشته شده است
لیست محدودیتها کوتاه است، اما تمام خط دفاعی سایتهای مدرن را شامل میشود. Kitesurf از موارد زیر پشتیبانی نمیکند:
- پخش ویدئو؛
- رندرینگ WebGL؛
- دست دادن چالش ربات با اثرات واقعی TLS؛
- جلسات طولانی مجاز که نیاز به وضعیت دائمی دارند.
نقطه سوم - کلیدی است. Cloudflare خود مینویسد: اگر وظیفه به چالش ربات برخورد کند، از Chromium معمولی در Browser Run استفاده کنید. به این معنی که شرکتی که این چالشها را در میلیونها سایت قرار میدهد، به صراحت هشدار میدهد که مرورگر سبک خودشان از پس آن برنمیآید. این یک نقص در نسخه بتا نیست، بلکه نتیجه معماری است: اثر TLS (JA3/JA4) در استک شبکه ایجاد میشود، نه در رندرر، و موتور Rust در ایزوله Workers به طور فیزیکی متفاوت از Chrome واقعی دست میدهد.
اثر جانبی موتور غیرمعمول - منحصر به فرد بودن. اسکریپتهای ضد ربات سالها بر روی آثار Chromium کالیبره شدهاند: ترتیب ویژگیها، مشخصات خطاها، زمانبندی API. موتوری که این آثار را ندارد، «پاکتر» به نظر نمیرسد - بلکه به طور دیگری به نظر میرسد، و «دیگر» در امتیازدهی ضد ربات هزینه بیشتری نسبت به «مثل همه» دارد. ما قبلاً این اثر را در بررسی مرورگرهای مخفی ۲۰۲۶ بررسی کردهایم: بنچمارکها در مورد پاکی اثر انگشت JS و نتایج در اهداف زنده متفاوت است، زیرا اهداف زنده مجموع سیگنالها را حساب میکنند.
Obscura: همان کلاس، اما بر روی سرور شما
Obscura - نماینده اصلی اپنسورس این کلاس است. مخزن آن در ۱۳ آوریل ۲۰۲۶ ایجاد شد، مجوز Apache-2.0، و تا پایان اوت - بیش از ۲۲ هزار ستاره. درون آن یک V8 واقعی وجود دارد، و از بیرون - CDP، یعنی همچنین جایگزین drop-in برای Chrome بدون سر است برای Puppeteer و Playwright.
تصمیم معماری کلیدی: Obscura هیچ خط تولیدی برای طراحی و رندر ندارد، و اصلاً تصویر را رندر نمیکند. از این رو اعداد بنچمارک نویسنده - میانه بر اساس ۳۳ سناریو حدود ۲۱ برابر سرعت و حدود یک هفتم حافظه نسبت به Chrome بدون سر را ارائه میدهد. در بارگذاری مداوم صفحات React در چهار کارگر، این ۴۰ صفحه در ثانیه با ۱۱۲ مگابایت حافظه در برابر ۳ صفحه در ثانیه با ۴.۲ گیگابایت در Chrome است. پوشش WPT برای «هسته» (DOM، HTML، URL، fetch) - ۸۳.۳٪، یعنی ۳۱۸,۹۱۶ زیرآزمون از ۳۸۲,۸۹۱.
تفاوت عملی با Kitesurf در سرعت نیست، بلکه در جایی است که همه اینها اجرا میشود. Obscura را خودتان راهاندازی میکنید - و خودتان تصمیم میگیرید که از کدام خروجی شبکه استفاده کند. Kitesurf در شبکه دیگری زندگی میکند، و این ما را
