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

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