Назад
Bez: браузерний рушій, що генерується зі специфікацій і тестів
SiTech AI Team3 хв читання

Bez: браузерний рушій, що генерується зі специфікацій і тестів

Проєкт Bez генерує браузерний рушій зі специфікацій, а не пише його вручну: модель створює варіанти коду, результат перевіряють Chromium, Firefox і WebKit, а переможні варіанти зберігаються як звичайний код Rust.

Що таке Bez

Bez — це проєкт, який генерує браузерний рушій зі специфікацій і тестів, а не пише його вручну. За словами авторів, ручна побудова рушія потребує сотень інженерів і років, тому створити його можуть лише кілька компаній, і лише вони вирішують, як працює вебплатформа. У конвеєрі модель створює багато варіантів коду зі специфікації; кожен запускається в рушії, а результат порівнюють із трьома провідними браузерами (Chromium, Firefox, WebKit): чи ті самі блоки в тих самих місцях? Відхилені варіанти повертаються моделі, а схвалені зберігаються як звичайний код Rust. Як тести використовується WPT, а після одноразової побудови конвеєра кожен додатковий рушій обходиться дешево.

Поточний стан проєкту

Станом на 25 вересня 2026 року (browser-compat-data 8.0.4, 17 259 елементів, 74 правила) 0,6% вебповерхні згенеровано, 0,3% написано вручну, 0,5% пов’язано, 5,7% покрито лише еталонною перевіркою, а 93,0% ще не опановано. Найбільше просунувся CSS — 2,5%; HTML, JavaScript, SVG, WebAssembly, HTTP і MathML поки що повністю не покриті. У crates/layout/src/generated є дев’ять правил CSS 2.1: вісім написали моделі й допустили голосуванням браузерів, а правило висоти блока залишилося написаним вручну, бо жоден кандидат не переміг. Вони проходять 227 рецептурних випадків і 11 корисних сторінок WPT.

დაფარვის ისტორია: ელემენტების წილი

Що показують експерименти

З 705 попарних порівнянь на 235 документах 699 збіглися. Усі шість суперечностей стосувалися відсотків, вкладених до дванадцяти рівнів; а тим, хто вирізнявся більшістю, завжди був Firefox. Розбіжність — це справжня вада вебсумісності: Gecko округлює довжину до 1/60 px, а Blink і WebKit використовують 1/64 px. Відтворення збігаються з підтвердженими вадами Mozilla у Slack, Google Store і Samsung, а також із багом Mozilla 1719314. Голосування WPT: більшість трьох рушіїв покриває 2 162 676 випадків із 2 282 301 (94,8%). Набори відповідності — корисні еталони: WebGL з dEQP 99,7%, WPT canvas 82,6%, WPT Web Audio 74,4%, WebGPU CTS для валідації приблизно 85%. Згортання меж, написаних на Datalog, збіглося з браузерами в 1195 із 1195 випадків і виявило посіяну помилку, яку пропустила перевірка геометрії.

Цілі та відкриті питання

Типова версія — це повний рушій, але для інших потреб можна ввімкнути лише потрібні функції; решта навіть не входить у бінарник, а не просто вимкнена. Малий рушій потребує менше роботи й пам’яті, і його легко вбудувати в застосунки та пристрої. Коли специфікація або тест змінюються, код генерується й перевіряється заново, а не переписується вручну. Економіка для частини платформи виправдана: близько 55-60% записів сумісності мають корисний автоматичний еталон і генеровану специфікацію, а 8-18% не мають жодного. Серед відкритих питань — ціна ручної побудови кожного правила, досяжність WPT без JavaScript і межі коду, згенерованого з IDL.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.