Как веб-приложения догоняют нативные в Project Fugu.
Project Fugu — это амбициозная и долгосрочная инициатива, призванная размыть границу между возможностями обычных веб-сайтов и полноценных нативных приложений. Инициированный Google в сотрудничестве с Microsoft, Intel и другими крупными игроками экосистемы Chromium, проект стремится предоставить веб-платформе доступ к тем функциям операционной системы и аппаратного обеспечения, которые раньше были исключительной прерогативой "установленных" программ.
Философия проекта Фугу
Название «Fugu» (иглобрюхая рыба) символизирует идею безопасного расширения возможностей - как фугу требует аккуратного обращения из-за своих токсинов, так и веб-платформа нуждается в осторожном развитии новых API, чтобы не нарушить безопасность пользователей.
Нативные приложения (устанавливаемые через App Store или Google Play) долгое время имели неоспоримое преимущество: они могли делать все, что угодно, — от управления файлами до доступа к NFC и Bluetooth. Веб-сайты же были ограничены "песочницей" браузера из соображений безопасности.
Цель Fugu — не просто добавить функции ради функций, а сделать веб-платформу универсальной, сохраняя при этом ее ключевые преимущества:
- Мгновенный доступ. Не нужно ничего устанавливать, достаточно перейти по ссылке.
- Кросс-платформенность. Один код работает везде — на Windows, macOS, Android, Linux.
- Безопасность и приватность. Все новые API разрабатываются с обязательным требованием явного разрешения пользователя (например, запрос на доступ к файлам или камере).
Название проекта отсылает к рыбе фугу — известному деликатесу, который при неправильном приготовлении может быть смертельно опасен. Это метафора того, как команда подходит к разработке. Новые, мощные возможности должны быть реализованы с величайшей осторожностью, чтобы не подорвать безопасность и доверие пользователей к вебу.
От "можно" к "нужно" - ключевые API, реализованные благодаря проекту Fugu
Project Fugu уже принес множество значимых улучшений, которые мы, возможно, воспринимаем как должное.
1. File System Access API (Доступ к файловой системе)
Это, пожалуй, одно из самых революционных изменений. Раньше веб-приложение могло только скачать файл или загрузить его через форму. Теперь же, с разрешения пользователя, оно может:
- Читать и записывать файлы напрямую.
- Открывать папки и работать с целыми директориями (например, для IDE или фоторедакторов).
- Сохранять изменения в реальном времени, как любое нативное приложение.
2. Async Clipboard API (Асинхронный буфер обмена)
Улучшенный доступ к функциям копирования/вставки, включая возможность работы с изображениями и другими бинарными данными в буфере обмена.
3. Web Share API (API обмена данными)
Позволяет веб-приложениям использовать встроенное в ОС меню "Поделиться", отправляя ссылки, текст или файлы в другие установленные на устройстве приложения (мессенджеры, почта и т.д.).
4. Badging API (API значков приложений)
Progressive Web Apps (PWA) теперь могут отображать небольшие счетчики (badge) поверх своего значка на рабочем столе или в панели задач, сигнализируя о новых сообщениях или уведомлениях, без необходимости назойливых пуш-уведомлений.
5. Web Serial/HID/USB API (Доступ к портам)
Это открывает двери для профессиональных приложений. Веб-приложение теперь может напрямую общаться с аппаратным обеспечением, подключенным через USB, последовательный порт или HID-устройства (например, игровые контроллеры, 3D-принтеры, медицинское оборудование).
Что дальше? Будущее уже близко.
Сейчас проект сосредоточен на расширении поддерживаемых API и их стабильности. Кроме того, уделяется внимание улучшению удобства использования API и безопасности. В планах — дальнейшее взаимодействие с W3C для стандартизации и расширение поддержки в браузерах. Цель — сделать веб универсальной платформой для сложных и производительных приложений, сопоставимых с нативными на уровне функционала.
Проект не останавливается. В разработке находятся такие перспективные API, как:
- API виртуальной реальности (WebXR). Более глубокая интеграция с VR/AR устройствами.
- WebGPU. Более мощный и современный доступ к графическому процессору для высокопроизводительных игр и 3D-графики.
- API управления окнами (Window Management). Возможность размещать окна приложения на нескольких мониторах.
- WebNN (Web Neural Network API). Одноим из самых захватывающих направлений развития является интеграция возможностей искусственного интеллекта (ИИ) непосредственно в браузер. Это устраняет необходимость отправлять данные на удаленные серверы для обработки, повышая конфиденциальность, обеспечивая работу в оффлайн-режиме и снижая нагрузку на серверы.
В рамках инициатив, сопутствующих Project Fugu, ведется работа над переносом ресурсоемких задач искусственного интеллекта (ИИ) с облачных серверов на локальное устройство пользователя, что повышает конфиденциальность, обеспечивает работу в оффлайн-режиме и снижает нагрузку на серверы. Для реализации этого направления разрабатываются API, такие как WebGPU для высокопроизводительного доступа к графическому процессору и Web Neural Network API (WebNN) для прямого доступа к аппаратным ускорителям ИИ.
Transformers.js ИИ на острие веба
Ярким примером того, как эти API используются на практике, является библиотека Transformers.js от Hugging Face.
Transformers.js это JavaScript-библиотека, которая позволяет запускать самые современные модели машинного обучения (например, для обработки естественного языка, компьютерного зрения, работы со звуком) непосредственно в веб-браузере, без необходимости в серверной инфраструктуре.
Как это работает:
- Библиотека функционально эквивалентна своей популярной Python-версии и поддерживает множество предварительно обученных моделей из Hugging Face Model Hub, которые были сконвертированы для работы в веб-среде.
- Благодаря интеграции с WebGPU, Transformers.js демонстрирует значительное повышение производительности (в 40-75 раз быстрее по сравнению с использованием только WebAssembly/WASM), позволяя запускать даже большие языковые модели (LLM) и Stable Diffusion для генерации изображений локально.
- Запуск моделей в браузере обеспечивает максимальную конфиденциальность, поскольку данные пользователя никогда не покидают его устройство, а скорость отклика значительно возрастает, так как отсутствует задержка передачи данных по сети.
Проект Fugu и Transformers.js вместе меняют правила игры, делая передовые технологии ИИ доступными для веб-разработчиков и позволяя создавать приложения нового поколения, которые еще несколько лет назад можно было реализовать только на нативных платформах.
Стандартизация и конкуренция
Важно отметить, что все API, разработанные в рамках Fugu, проходят процесс стандартизации в международных органах, таких как W3C. Это гарантирует их открытость.
Однако поддержка со стороны других браузеров неоднородна. Хотя Microsoft Edge активно участвует в проекте, но Firefox (Mozilla) и Safari (Apple) более консервативны, часто блокируя или замедляя реализацию некоторых API из соображений безопасности или защиты своей бизнес-модели (Apple, например, имеет сильный интерес в сохранении преимуществ нативных приложений в App Store).
Project Fugu это не просто набор новых функций, а стратегическое видение развития веба как универсальной и мощной платформы. Он демократизирует разработку приложений, позволяя создавать высокофункциональные, быстрые и безопасные сервисы, доступные в один клик. Будущее веб-разработки выглядит захватывающим, и Fugu является одним из его главных двигателей.
Это даёт разработчикам инструменты для создания мощных PWA и других веб-приложений, таких как голосовые и видеозвонилки, графические редакторы и даже игры.
Где следить за новостями и активностью Project Fugu
- Официальный сайт и страница Project Fugu в Chromium
- Трекер API Project Fugu
- Демонстрация API Project Fugu GitHub и developer chrome API Project Fugu
- Блоги разработчиков Chromium и Google Chrome Developers
- Видеопрезентации и проработки на YouTube
Проект Фугу это ключевая инициатива для развития веба, обеспечивающая технологическую основу, которая поможет веб-приложениям достигать уровня нативных по возможностям и удобству. Это важный шаг к тому, чтобы браузер стал полноценной платформой для работы и развлечений, максимально раскрывая потенциал устройств пользователей без необходимости установки дополнительных программ.