Когда нужно собрать крошечное десктопное приложение: TinyJS

Tinyjs Javascript мини-приложения веб-представления Electron Rust theregister.com

Создайте миниатюрные приложения для рабочего стола с помощью TinyJS! Используйте нативные веб-представления ОС для уменьшения занимаемого места. Запускайте JavaScript, CSS и HTML без компиляции.

Пока мировые миллиардеры с тревогой планируют дата-центры для обработки триллионов строк кода, сгенерированного ИИ, один разработчик программного обеспечения пошел совершенно иным путем: он создает экосистему для написания и запуска небольших приложений для настольных компьютеров, словно на дворе снова 1992 год.
Разработчик, называющий себя «создателем вещей», Тарвин Стро-Спийер создал JavaScript-среду выполнения под названием TinyJS для создания очень маленьких приложений (многие из которых занимают около 6 МБ или меньше на диске) для macOS, Linux или Windows.
Важно отметить, что TinyJS — это не фреймворк «без кода» с ограниченными возможностями. Он предлагает полную мощь JavaScript, а также возможности визуального рендеринга и связи базовой операционной системы.
Секрет экономичности TinyJS заключается в использовании окон WebView каждой ОС, задействуя встроенный браузерный движок для визуального отображения приложения, вместо того чтобы реализовывать слой пользовательского интерфейса с нуля. Он использует WebKit для запуска приложений таким образом на macOS, WebView2 для Windows и WebKitGTK для Linux.
Подход TinyJS кардинально отличается от использования фреймворка Electron, который включает в себя браузерное ядро с открытым исходным кодом Chromium для каждого настольного приложения. Но в то время как Electron обещает идентичный внешний вид приложения на всех платформах, приложения TinyJS будут иметь незначительные визуальные отличия при запуске на разных платформах из-за небольших различий в работе движка рендеринга каждой ОС.
За это кроссплатформенное единообразие приходится платить: с Electron даже самое простое приложение может весить 150 МБ.
Rust — не всегда ответ
Ядром TinyJS является txiki.js, ультракомпактная среда выполнения JavaScript, написанная Саулем Ибаррой Корретхе, которая заставляет Deno и Bun выглядеть как гиганты. Стартовый пакет весит около 5,6 МБ, а лаунчер занимает еще около мегабайта. Остальное — это, по сути, код разработчика.
Стро-Спийер также упростил процесс разработки, используя механизмы межпроцессного взаимодействия ОС для обработки передачи данных, устраняя необходимость включать HTTP-сервер для каждого приложения со всеми связанными с этим проблемами безопасности.
Все кодирование в TinyJS выполняется на JavaScript, CSS и HTML — компиляция не требуется. Здесь есть много возможностей для творчества, поскольку возможности веб-дизайна в последнее время стремительно развиваются.
Проект Tauri имеет схожую цель создания миниатюрных приложений и может поставлять настольное приложение размером 10 МБ, но этот фреймворк имеет некоторые недостатки, отметил Стро-Спийер на веб-сайте TinyJS. Главный из них — необходимость писать приложения на Rust, что требует изучения Rust, среди прочих недостатков.
Кроме того, TinyJS передает ОС большую часть подсистемы приложения — такой как диалоги, меню, трей, буфер обмена, автоматические обновления — которые в Tauri пришлось бы импортировать по одному плагину.
Разработчикам не нужна Node.js в качестве зависимости, если они не хотят использовать фреймворк, требующий ее, например Vite. Он также может поддерживать другие JavaScript-фреймворки, такие как React, Vue и Svelte. Или он может работать вообще без зависимостей.
Вы также можете использовать TinyJS для обертывания веб-страницы, указав окну URL-адрес. Представьте, что ваш любимый сайт станет приложением на вашем рабочем столе.
Полка миниатюрных приложений
С помощью TinyJS Стро-Спийер создал «магазин приложений», который, естественно, можно запускать с рабочего стола (архивированную версию для Windows можно скачать здесь). На момент публикации он индексирует 25 примеров приложений, написанных им.
Приложения-примеры, все бесплатные, различаются по полезности и причудливости. На полке представлены мировые часы (поставляются в zip-архиве 3,8 МБ), приложение истории буфера обмена (3,7 МБ), редактор markdown (4,9 МБ), настольный призрак (3,8 МБ), браузер SQLite (4,1 МБ) и, что наиболее впечатляет, клон культового музыкального проигрывателя Winamp, который требует всего 7,4 МБ на вашем жестком диске.
Как только вы убедите Windows Defender доверять лаунчеру, вы сможете скачать и открыть выбранное приложение прямо с полки.
В моих тестах приложение для копирования и вставки, явно написанное для горячих клавиш Mac, все еще было слишком глючным для Windows, хотя мировые часы работали отлично и потребляли всего 15,5 МБ ОЗУ на моей машине. (Caveat emptor: лаунчер проверяет хеш для обеспечения достоверности загруженных приложений, хотя вы доверяете тому, что Стро-Спийер не имеет злых намерений).
Или просто пропустите примеры и создайте свои собственные тестовые приложения.
Современные персональные компьютеры мощны, но по-прежнему существует множество веских причин для создания приложений, которые были бы миниатюрными даже по стандартам прошлого века. Коммерческие приложения (те, что еще существуют) и веб-браузеры являются прожорливыми потребителями ОЗУ, поэтому добавление новых инструментов на рабочий стол с минимальными накладными расходами — это плюс. Кроме того, в отличие от раздутых приложений, миниатюрные приложения запускаются быстро и, теоретически, потребляют меньше энергии на ноутбуках.
И, как в меме TikTok с женщиной, которая настаивает на том, чтобы взять собаку в самолет, потому что это «просто крошечная собака», пользователи могут захотеть добавить эти приложения на свои рабочие столы, потому что, ну, они крошечные. ®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: