Разработчики написанного на языке JavaScript web-браузера Breach развивают новый кросс-платформенный фреймворк Thrust, позволяющий создавать пользовательские приложения с использованием технологий web-браузера Chromium. Thrust является развитием используемого в браузере Breach ядра и позволяет разрабатывать произвольные GUI-приложения, использующие в качестве каркаса Chromium Content API.
Thrust не привязан к определённому языку программирования и может в текущем состоянии использоваться в проектах на языках JavaScript (Node.js), Python и Go. При этом оформление и организация работы графического интерфейса базируется на web-технологиях. Иными словами Thrust позволяет обеспечить интеграцию базовой части приложения, которая может быть написана на любом языке программирования, с интерфейсом, который по сути является web-приложением. Поддерживается работа в Linux, OS X и Windows. Thrust загружается с использованием динамического связывания, т.е. может поставляться в качестве зависимости через штатные пакетные менеджеры.
Использующее Thrust приложение состоит из двух основные основных компонентов: платформы и HTML5-клиента. В платформе, благодаря предоставлению спецефичного для разных языков программирования API, осуществляется управление открытием окон, размещением меню, контролем за сеансами и взаимодействием с HTML5-клиентом. HTML5-клиент непосредственно обеспечивает формирование интерфейса. Взаимодействие с HTML5-клиентом производится при помощи JSON RPC. Для вывода графики применяется штатный графический движок Chromium.
(Platform) [stdio] (Your Implementation) +--------------+ # +-----------------------+ | | Cocoa / Aura | # +---| win3: (HTML/JS) | +-------+------+ # | +-----------------------++ | # +--| win2: (HTML/JS) | | cli +------------+ +-------+------+ # | +-----------------------++ | +-+ thrust (C++) +-------+-+ win1: (HTML/JS) | | ContentAPI | +-------+------+ # +-----------------------+ | | | # | (TCP/FS) | (Blink/v8) | +-------+------+ # +-----------------------+ | | + JSON RPC srv +---------+ Client App (any Lang) | | srv +------------+ +--------------+ # +-----------------------+