Обновить

Сравниваем современные подходы к разработке десктопных приложений на веб‑технологиях: ElectroBun, NeutralinoJS и Wails

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7K
Всего голосов 10: ↑9 и ↓1+11
Комментарии11

Комментарии 11

Лучшее десктопное приложение это то, что не делается вебом.

Пару недель назад попытался на Rust + Tauri накидать довольно простое приложение. Надо забрать кадры из внешней железки (DeckLink UltraStudio HD Mini), показать их на экране и положить на диск. С тем чтобы забрать кадры и положить на диск - проблем особых не возникло, но отобразить их - к сожалению в Tauri у меня так и не получилось. Я не очень хорош в Web технологиях и скорее всего сделал что-то не так, но с лету другого решения не нашел.
Кадры в YUV преобразовал в RGB, потом в base64, просунул через IPC в WebView и отобразил на Canvas. Больше всего времени занимала передача данных от бэка на фронт. По этой причине не удалось добиться 1080p50. Подключил Cursor в этот процесс и не особо вдаваясь в подробности - попросил оптимизировать. Не вышло.
За за пару запросов - фронт был сменен с Tauri на egui. 1080p50 поехало без особых проблем. С задержкой в 2 кадра от входного сигнала.
Резюмируя.
Пока нет необходимости гонять кучу данных с бека на фронт - WebBased Desktop фреймворки норм. Но как только появляется нагрузка на IPC - пиши пропало.

Да, связь бэкенда с фронтендом в данном случае самое слабое место всех подобных приложений.

из интересных есть ещё Dioxus.

Видео через Base64, извините, но вы тот ещё извращенец! Это же битовый формат, неэффективно его в текстовый и обратно переводить. Web давно освоил аудио и видео потоки без всяких фреймворков.

Даёшь натив!

Tauri я в этот список включать не стал, так как учить Rust

Tauri можно пользоваться без знания Rust. достаточно привычных вам js/ts.

Ага, Go (Wails) можно было по той же причине не включать ;)

Спасибо, крутое сравнение и правда!

Ещё сделал такой вариант: сервер на delphi7 в 343 кб запускает установленный в windows браузер Chrome в режиме приложения и показывает в нем указанный html+js. При этом js может всё что и delphi, а если не хватит можно добавить. И ещё там можно создать один exe файл, который включит в себя всё что нужно в упакованном виде и будет работать, не требуя других файлов. Таким способом сделал плеер ТВ из интернета в 514 кб и анимацию картинок: https://github.com/prog-mania/fani/blob/main/fani.exe

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации