15 puntos por GN⁺ 2024-11-22 | 5 comentarios | Compartir por WhatsApp
  • Electrobun busca ofrecer una solución completa para construir, actualizar y distribuir aplicaciones de escritorio multiplataforma ultrarrápidas y ligeras escritas en TypeScript
  • Usa bun para ejecutar el proceso principal y empaquetar el TypeScript del webview, e incluye bindings nativos escritos en zig
  • Funciones principales

    • TypeScript: puedes escribir TypeScript para el proceso principal y el webview, lo que permite trabajar fácilmente con un solo lenguaje.
    • Rápido: el aislamiento entre el proceso principal y el del webview garantiza seguridad y rendimiento, y permite implementar fácilmente RPC rápidas y tipadas.
    • Pequeño: con un pequeño bundle de app autoextraíble de aproximadamente 12 MB y actualizaciones de la app de apenas 4 KB, puedes desplegar con frecuencia mientras reduces los costos de ancho de banda.
    • Integración completa: ofrece un flujo de trabajo totalmente integrado con el que puedes empezar a escribir código en 5 minutos y desplegar en 10 minutos.

5 comentarios

 
tsboard 2024-11-27

Cuanto más usé Bun, más me gustó de verdad. Sobre todo, me parece impresionante que hasta ahora siga manteniéndose fiel a su objetivo de funcionar rápido. Ojalá a este proyecto le vaya bien.

 
aer0700 2024-11-23

¿Será uno de los intentos de reescribir en bunjs lo que antes se desarrolló con nodejs?
Todavía no he usado Bun, y además ya estoy desarrollando con node y tampoco tengo planes de mover lo que hice a Bun...
Quizá en 10 años no sepa qué pensar. Por si acaso, sí debería probarlo un poco.

 
tinywolf 2024-11-23

Wails también sirve bastante bien para usos modestos.

 
pmc7777 2024-11-22

Está bueno que se vean seguido intentos parecidos a Tauri, pero con un enfoque distinto.

 
GN⁺ 2024-11-22
Opiniones de Hacker News
  • Electrobun es similar a Tauri, pero usa Zig para implementar las partes rápidas y nativas, y se enfoca más en el frontend/UI

    • Es una propuesta interesante, pero requiere una cantidad enorme de trabajo
  • El desarrollador de Electrobun menciona que el proyecto está en una etapa inicial y que la hoja de ruta necesita actualización

    • Usa el WebView del sistema como Tauri y no incluye Chromium en el paquete
    • Como Electron, usa Bun como proceso principal, lo que permite usar TypeScript en los contextos principal y del navegador
    • Los bindings nativos escritos en C/Objective-C están envueltos en wrappers de Zig que ejecuta el proceso de Bun
    • Apunta al multiplataforma, pero está priorizando la estabilidad
    • El CLI maneja actualizaciones, firma de código, etc., y puede generar artefactos de compilación para subirlos a S3 o a un host de archivos estáticos
    • Genera automáticamente actualizaciones de 4 KB mediante una implementación de bsdiff optimizada con Zig
    • Minimiza el tamaño de la descarga inicial con su propio mecanismo autoextraíble en Zig que usa Zstd
    • Ofrece un mecanismo RPC cifrado donde solo hay que escribir las firmas de métodos y los handlers entre Bun y el proceso del navegador
    • Mediante una implementación OOPIF, permite incrustar contextos de navegador aislados, de alto rendimiento y fáciles de usar con el elemento HTML <electrobun-webview>
  • Hay comentarios preguntando cómo maneja las funciones específicas de cada sistema operativo en TypeScript puro y qué diferencias hay en tamaño y velocidad frente a Tauri

  • Hay preguntas sobre el motor de renderizado de Electrobun, y aunque el nombre del proyecto sugiere Electron, no se menciona

    • La app Electrobun Playground pesa 50.4 MB, y la mayor parte corresponde al runtime de Bun
  • Hay quienes opinan que será interesante ver cómo crece Electrobun; no se sumarían de inmediato, pero lo consideran un gran proyecto

  • Hay una opinión de que Electrobun es básicamente Electron, pero reemplazando Node.js por Bun y Chromium por WebView

  • Hay comentarios de que mientras más alternativas haya para crear apps multiplataforma, mejor

  • Hay quienes se preguntan si Electrobun es simplemente otro framework basado en WebView como NeutralinoJS, Electrino o DeskGap, y qué ventajas tiene además de usar Bun en lugar de Node

    • Sugieren que para apps de escritorio multiplataforma realmente ligeras es mejor usar frameworks nativos sin WebView como Qt, GTK, wxWidgets o FLTK 1.4
  • Hay preocupación por los problemas de rendimiento derivados del aislamiento entre el proceso principal y el proceso del WebView

    • Se necesita usar un puente IPC para compartir datos, y eso obliga a copiar todos los datos compartidos
    • Por ejemplo, al decodificar video con ffmpeg, hay que copiar cada imagen decodificada antes de renderizar cada frame
  • Se comenta que usar Bun como alternativa a Electron está bien, pero que superar a Electron es una vara bastante baja

    • Mencionan que están esperando que Bun funcione en FreeBSD y que eso está en su lista de deseos de Navidad