Pake: этот CLI-инструмент создает десктопные приложения весом 5 МБ
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Это Paik, инструмент командной строки, который превращает любой веб-сайт в полноценное
00:00:05настольное приложение одной командой. Он написан на Rust, поэтому созданные им приложения
00:00:10весят около 5 МБ, что крошечно по сравнению с Electron, который упаковывает целую копию
00:00:15Chrome в каждое приложение. Вы даже можете внедрять свои CSS и JavaScript, добавить иконку в трей
00:00:20и изменить стиль заголовка окна, не написав ни строчки кода на Rust. Но зачем мне использовать
00:00:25его вместо других подобных инструментов, и почему Paik требует наличия PNPM или NPM,
00:00:31если он написан на Rust? Я, честно говоря, не хочу знать, но подписывайтесь, и давайте выясним. Paik был создан в 2022 году TW93, продуктовым инженером
00:00:40из Китая, который также создал Mole, безумно популярный инструмент для оптимизации Mac, который я
00:00:45сам уже давно использую. Но идея Paik имеет большой смысл, потому что если задуматься,
00:00:49такие приложения, как YouTube Music, Gmail и Instagram, не имеют собственных официальных нативных
00:00:55приложений. Они живут только внутри вкладок браузера, что хорошо, если вам нужно всё функциональное
00:00:59многообразие браузера, но если вы хотите более производительный веб-сайт с собственной иконкой
00:01:04в Dock-панели для разделения, то отдельное приложение для этого может быть очень полезным. Здесь-то
00:01:09потому что он построен на базе Tauri 2, который использует системный нативный webview, делая приложения
00:01:14который использует системный нативный веб-просмотр, делая приложения меньше, быстрее и снижая
00:01:19потребление памяти, подобно тому, как работают Electro, Bun или Vercel Zero Native,
00:01:24о которых я расскажу чуть позже в этом видео. Но основной кастомный код, написанный TW93 поверх
00:01:30Tauri 2, состоит примерно из 1800 строк кода на Rust и отвечает за такие вещи, как управление окнами, нативные меню
00:01:35и внедрение JavaScript. Вам нужно просто ввести одну команду, и Paik позаботится обо всём. На самом деле,
00:01:40давайте попробуем использовать Paik, чтобы превратить мой проект имитации пленки в отдельное приложение. После установки
00:01:45CLI Paik вы заметите, что он очень похож на Mole, если вы когда-либо использовали Mole, и у него нет
00:01:50множества флагов, что, на мой взгляд, хорошо. Итак, когда сервер моего проекта запущен, я могу запустить Paik с
00:01:55URL и названием, которое я хочу дать приложению. Теперь, если я нажму ввод, он загрузит иконку и пройдет через
00:02:00процесс создания приложения, что может занять от 5 до 10 минут. И как только он закончит, он создаст
00:02:05этот DMG, который мы можем найти здесь, весом 4,3 мегабайта. И если вы нажмете на него, вот наше приложение,
00:02:10которое можно установить, перетащив в приложения. Похоже, иконка не подгрузилась, но это
00:02:14нормально. Теперь, если мы откроем наше приложение, мы увидим, что оно работает сразу, и иконка появилась в Dock.
00:02:19Я могу выбрать видео, и всё, кажется, работает нормально. И если мы посмотрим на монитор активности,
00:02:24мы увидим, что наше приложение использует всего 61 мегабайт памяти по сравнению с браузером ARC, который использует очень много.
00:02:30А если мы посмотрим на размер приложения, он составляет 55 мегабайт по сравнению с таким приложением на Electron, как Slack,
00:02:35которое весит 310 мегабайт. Но, как вы видели ранее, у Paik есть несколько довольно интересных опций. Например,
00:02:40я могу собрать то же приложение с флагом отладки, чтобы получить доступ к инструментам разработчика. И я могу изменить
00:02:46строку состояния, чтобы оно больше походило на приложение, используя флаг скрытия заголовка, который делает заголовок окна бесшовным.
00:02:51Но это приложение явно не было спроектировано как бесшовное. Но, к счастью, Paik дает нам возможность
00:02:56исправить это без редактирования исходного кода приложения. Я мог бы написать кастомный CSS и внедрить
00:03:01его в приложение с помощью флага внедрения, что добавило отступы сверху, но также означает, что появилось
00:03:06больше свободного места для прокрутки внизу. Мы можем использовать флаг отображения системного трея, показывая иконку в системном трее,
00:03:12позволяя нам показывать и скрывать наше приложение. И мы даже можем внедрять JavaScript, так же как и CSS.
00:03:17Но прямо сейчас кажется, что нельзя редактировать пункты меню, которые Paik предоставляет по умолчанию.
00:03:23И Paik работает только с запущенными URL. Так что если я закрою свой сервер и попытаюсь открыть приложение,
00:03:28оно просто покажет мне пустой экран. Но, справедливости ради, Paik не был предназначен для локальных приложений. Я на самом деле протестировал
00:03:33приложение YouTube Music, которое работает на удивление хорошо после одной команды. И оно даже работает в автономном режиме,
00:03:38потому что именно так работает сайт YouTube Music. Так что я использую его как свой основной музыкальный плеер,
00:03:42но это, по сути, не тот инструмент для ваших десктопных приложений, так как Paik оборачивает живой
00:03:48URL и не упаковывает ваш код, если только вы не используете опцию использования локального файла, о которой я узнал только
00:03:53после создания этого видео. Я бы также не сказал, что он хорошо построен. Выслушайте меня. Я установил Paik
00:04:00используя BUN вместо PNPM или NPM, но внутри ему нужен один из них для настройки сборки Tauri.
00:04:05А моя версия PNPM была новее, чем требовалось, что означало, что он отказывался собирать и
00:04:11устанавливать нужное мне приложение. Поэтому мне пришлось использовать Claude Code, чтобы отредактировать исходный код Paik, только чтобы заставить его работать.
00:04:15Я в итоге нашел для этого проблему, но всё это можно было бы решить, если бы Paik поставлялся с
00:04:20скомпилированным бинарным файлом, что является преимуществом использования чего-то вроде ElectroBUN или ZeroNative,
00:04:25потому что ElectroBUN дает вам реальную среду выполнения BUN за веб-просмотром, что означает, что вы можете запускать серверную
00:04:31логику, а ZeroNative идет еще дальше, давая вам полноценную оболочку Zig, которая может вызывать библиотеки C напрямую.
00:04:36Так что Paik — это самый быстрый способ обернуть живой веб-сайт, но если вам нужно что-то большее,
Community Posts
No posts yet. Be the first to write about this video!
Write about this video