Об этом проекте
ZeroWeb представляет собой экспериментальный кроссплатформенный браузерный проект, реализованный на Rust. Репозиторий поддерживает две продуктовые линии: встраиваемую и переиспользуемую библиотеку ZeroWebView, а также полноценное браузерное приложение ZeroBrowser. Проект ориентирован на приоритет встраивания, соблюдение границ лицензирования (основные зависимости тяготеют к宽松 лицензиям MIT, Apache-2.0, BSD и т. д.) и полностековый путь на Rust. DOM, CSS, макет, рендеринг, навигация и границы безопасности выстраиваются внутри репозитория послойно, а не путем прямого использования готовых ядер.
Архитектура основана на многопроцессорном разделении: zero-browser сохраняет только окна, интерфейс браузера, сетевой прокси и импорт/презентацию IPC-фреймов; рендеринг страниц и выполнение скриптов берет на себя zero-renderer, а декодирование изображений и композитинг передаются подпроцессам zero-image-decoder и zero-compositor соответственно. В версии по умолчанию WebView, песочница скриптов или JS-движок не линкуются внутри процесса браузера; headless-отладка также осуществляется через renderer IPC для навигации, скриптов и создания скриншотов. Рабочая область состоит из 32 членов, включая 22 библиотеки crate, 7 точек входа приложений, а также инструменты тестирования и разработки.
Слой JavaScript страниц обеспечивается script-sandbox с поддержкой двух движков V8/QuickJS через feature gate, охватывая Web Worker, ES Modules и автоматическое мостирование WebAssembly JS API к wasm-sandbox. Нативные привязки DOM для V8 включены по умолчанию (default-on), включая нативную диспетчеризацию и всплытие событий, жизненный цикл customElements/Web Components, реализацию fetch, различные callback-функции наблюдателей, а также поддержку элементов форм и селекторов. В медиа-направлении представлены demux для webm/Matroska, декодирование VP9 на чистом Rust, опциональное декодирование AV1 и H.264, драйверы воспроизведения аудиодекодера и VideoPlayer, шина микширования и минимальный интерфейс Web Audio. Возможности хранения и офлайн-режима охватывают localStorage, sessionStorage, IndexedDB, caches/Cache API, а также реализацию жизненного цикла Service Worker и перехват fetch respondWith; реализация OPFS находится в процессе разработки. В части безопасности реализованы CSP, предварительная загрузка HSTS, блокировка и обновление смешанного контента, модель разрешений и изоляция сайтов; доступность начинается с FocusManager и ARIA. Совместимость редактирования HTML, взаимодействия с клавиатурой и поведения форм также продвигается как отдельная линия разработки.
Инженерная часть предоставляет сервис W3C WebDriver (34 эндпоинта, включая скриншоты и полноцепочечные интеграционные тесты), метрики совместимости рендеринга на основе WPT/CSSWG reftest (в README зафиксировано соответствие апстрим-корпусу reftest примерно на 87,2%, при этом честным показателем служит коэффициент пиксельного соответствия Chromium Oracle), гейты регрессии пикселей для статических страниц продукта, а также скрипты упаковки для Linux/macOS/Windows и Android M0 bootstrap. Проект четко помечен как экспериментальный, предназначенный в основном для обучения, исследований и инженерного поиска, и не подходит для повседневного или промышленного использования в качестве браузера; лицензия — MIT. Это также AI-first инженерный эксперимент: разработка кода в основном выполняется ИИ, в то время как человек отвечает за проектирование архитектуры, принятие ключевых решений и верификацию результатов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.