Bowser

Бесплатно
Открытый исходный код

Сайт: github.com/bowser-js/bowser

Bowser — это небольшая JavaScript‑библиотека для определения веб‑браузера, его версии, движка и характеристик платформы на основе строки user‑agent. Библиотека предоставляет удобный программный интерфейс для получения имени браузера, номера версии, движка рендеринга и флагов, указывающих на особенности платформы или устройства, такие как мобильность, наличие WebView или конкретная операционная система. Bowser распространён в средах разработки фронтенда как инструмент для адаптации поведения к особенностям конкретных браузеров и для обеспечения совместимости при разном уровне поддержки веб‑стандартов.

Проект появился как лёгкая альтернатива более тяжёлым и универсальным решениям, ориентированная на простоту интеграции и минимальный объём кода. Архитектура библиотеки фокусируется на распознавании ключевых признаков в user‑agent и предоставлении их в виде структурированных свойств и методов, что позволяет разработчику принимать условные решения в рантайме без глубокого анализа строк вручную. Если какие‑то подробные сведения о происхождении или авторстве отсутствуют в общедоступных источниках, это не препятствует описанию её типичных возможностей и сценариев применения на основании известной функциональности подобных инструментов.

  • Определение браузера: возвращает имя браузера (например, Chrome, Firefox, Safari, Edge) и основную версию.
  • Определение движка: выявляет движок рендеринга (например, Blink, Gecko, WebKit) и его версию при доступных данных.
  • Платформенные флаги: выявляет операционную систему и устройство (Windows, macOS, Linux, Android, iOS, мобильное/десктопное).
  • Флаги окружения: сообщает о запуске в WebView, headless‑режиме или встроенных оболочках.
  • Простое API: предоставляет методы и свойства для быстрого доступа к результатам детекции без разбора user‑agent вручную.
  • Лёгкий размер: оптимизирована для минимального влияния на размер сборки и производительность страницы.
  • Обратная совместимость: учитывает распространённые вариации строк user‑agent и особенности мобильных и десктопных платформ.
  • Гибкость интеграции: может использоваться как самостоятельный скрипт или в составе сборки с современными инструментами фронтенд‑разработки.
Подробнее