15 points par GN⁺ 2024-11-22 | 5 commentaires | Partager sur WhatsApp
  • Electrobun vise à offrir une solution complète pour créer, mettre à jour et déployer des applications desktop multiplateformes ultra-rapides et légères écrites en TypeScript
  • Utilise bun pour exécuter le processus principal, regrouper le TypeScript de la webview, et inclut des bindings natifs écrits en zig
  • Fonctionnalités principales

    • TypeScript : il est possible d’écrire en TypeScript pour le processus principal et la webview, ce qui permet de travailler simplement avec un seul langage.
    • Rapide : l’isolation entre le processus principal et celui de la webview garantit sécurité et performances, et permet d’implémenter facilement une RPC rapide et typée.
    • Compact : avec un petit bundle d’application auto-extractible d’environ 12 Mo et des mises à jour pouvant descendre jusqu’à 4 Ko, on peut déployer fréquemment tout en réduisant les coûts de bande passante.
    • Intégration complète : fournit un workflow entièrement intégré qui permet de commencer à coder en 5 minutes et de déployer en 10 minutes.

5 commentaires

 
tsboard 2024-11-27

Plus j’utilise Bun, plus je l’apprécie vraiment. Surtout, il est impressionnant de voir qu’il reste fidèle jusqu’à présent à son objectif de fonctionner rapidement. J’espère que ce projet réussira.

 
aer0700 2024-11-23

Est-ce que c’est peut-être l’une des tentatives de réécrire en bunjs ce qui était développé jusque-là en nodejs ?
Je n’ai pas encore essayé Bun, et comme je développe déjà avec Node et que je n’ai pas l’intention de migrer ce que j’ai fait vers Bun...
Peut-être que dans 10 ans, qui sait. Au cas où, il faudrait quand même que je mette les mains dessus.

 
tinywolf 2024-11-23

Wails peut aussi servir modestement.

 
pmc7777 2024-11-22

C’est agréable de voir souvent des tentatives similaires à Tauri, mais avec une approche différente.

 
GN⁺ 2024-11-22
Avis Hacker News
  • Electrobun est similaire à Tauri, mais utilise Zig pour implémenter les parties rapides et natives, tout en se concentrant davantage sur le frontend/l’UI

    • C’est une proposition intéressante, mais qui demande une quantité de travail énorme
  • Le développeur d’Electrobun mentionne que le projet est à un stade précoce et que la feuille de route a besoin d’être mise à jour

    • Comme Tauri, il utilise la webview système et n’embarque pas Chromium
    • Comme Electron, il utilise Bun comme processus principal, ce qui permet d’utiliser TypeScript dans les contextes principal et navigateur
    • Les liaisons natives écrites en C/Objective-C sont encapsulées dans des wrappers Zig, puis exécutées par le processus Bun
    • Il vise le cross-platform, mais se concentre d’abord sur la stabilité
    • La CLI gère les mises à jour, la signature de code, etc., et peut générer des artefacts de build à téléverser vers S3 ou un hébergement de fichiers statiques
    • Il génère automatiquement des mises à jour de 4 KB grâce à une implémentation de bsdiff optimisée en Zig
    • Il minimise la taille du téléchargement initial grâce à son propre mécanisme auto-extractible en Zig utilisant Zstd
    • Il fournit un mécanisme RPC chiffré où il suffit d’écrire les signatures de méthodes et les handlers entre Bun et le processus navigateur
    • Grâce à une implémentation OOPIF, il permet d’intégrer des contextes navigateur isolés, performants et faciles à utiliser, sous forme d’éléments HTML <electrobun-webview>
  • Certains se demandent comment les fonctionnalités spécifiques à chaque OS sont gérées en pur TypeScript, et quelles différences de taille et de vitesse cela implique par rapport à Tauri

  • Des questions sont posées sur le moteur de rendu d’Electrobun, le nom du projet évoquant Electron sans que celui-ci soit mentionné

    • L’application Electrobun Playground pèse 50,4 MB, dont la majeure partie correspond au runtime Bun
  • Certains estiment qu’il sera intéressant de suivre la croissance d’Electrobun ; ils ne comptent pas s’y investir immédiatement, mais jugent le projet excellent

  • Selon un avis, Electrobun est Electron où Node.js est remplacé par Bun et Chromium par WebView

  • Certains pensent qu’il est toujours bon d’avoir plus d’alternatives pour créer des applications cross-platform

  • Certains se demandent si Electrobun n’est qu’un autre framework basé sur WebView comme NeutralinoJS, Electrino ou DeskGap, et quels avantages il offre en dehors de l’utilisation de Bun à la place de Node

    • Il est suggéré que, pour des applications desktop cross-platform vraiment légères, mieux vaut utiliser des frameworks natifs sans WebView comme Qt, GTK, wxWidgets ou FLTK 1.4
  • Certains s’inquiètent des problèmes de performance causés par l’isolation entre le processus principal et le processus WebView

    • Il faut utiliser un pont IPC pour partager les données, ce qui oblige à copier toutes les données partagées
    • Par exemple, lors du décodage vidéo avec ffmpeg, il faut copier l’image décodée de chaque frame avant de pouvoir l’afficher
  • Utiliser Bun comme alternative à Electron est jugé positif, mais faire mieux qu’Electron est considéré comme un objectif peu exigeant

    • Quelqu’un dit attendre que Bun fonctionne sur FreeBSD et l’avoir mis sur sa liste de souhaits de Noël