15P by GN⁺ 5달전 | ★ favorite | 댓글 5개
  • Electrobun은 Typescript로 작성된 초고속, 경량, 크로스 플랫폼 데스크톱 애플리케이션을 구축, 업데이트 및 배포하기 위한 완전한 솔루션을 제공하는 것을 목표로 함
  • bun을 사용하여 메인 프로세스를 실행하고 웹뷰 Typescript를 번들링하며, zig로 작성된 네이티브 바인딩을 포함
  • 주요 기능

    • Typescript: 메인 프로세스와 웹뷰를 위한 Typescript를 작성할 수 있으며, 하나의 언어로 간편하게 작업 가능함.
    • 빠름: 메인과 웹뷰 프로세스 간의 격리로 보안과 성능을 보장하며, 빠르고 타입이 지정된 RPC를 쉽게 구현할 수 있음.
    • 작음: 약 12MB의 작은 자체 추출 앱 번들과 4KB만큼 작은 앱 업데이트로 자주 배포하면서 대역폭 비용을 절감할 수 있음.
    • 완전한 통합: 5분 내에 코드 작성을 시작하고 10분 내에 배포할 수 있는 완전한 통합 워크플로우를 제공함.

기존에 nodejs로 개발 된 것들을 bunjs로 재작성하는 시도? 중 하나 일까요.
Bun 은 아직 안써봤는데 + 이미 node로 만들고 있고 만든 걸 Bun 으로 옮길 계획도 없는데...
10년 뒤엔 모르려나요. 혹시 모르니 만져보긴 해야겠네요.

wails도 소소하게 쓸만합니다.

Tauri와 비슷하지만 다른 결의 시도들이 자주 보여서 좋네요

Bun은 써보면 써볼수록 정말 마음에 들었습니다. 무엇보다 빠르게 동작한다는 목표를 아직까지도 충실하게 따르고 있는 점이 대단해 보입니다. 이 프로젝트는 잘되었으면 좋겠습니다.

Hacker News 의견
  • Electrobun은 Tauri와 비슷하지만 Zig를 사용하여 빠르고 네이티브한 부분을 구현하고, 프론트엔드/UI 부분에 더 집중하는 프로젝트임

    • 이는 흥미로운 제안이지만 엄청난 작업량을 요구함
  • Electrobun의 개발자는 프로젝트가 초기 단계에 있으며, 로드맵이 업데이트가 필요하다고 언급함

    • Tauri처럼 시스템 웹뷰를 사용하고, Chromium을 번들링하지 않음
    • Electron처럼 Bun을 메인 프로세스로 사용하여 타입스크립트를 메인 및 브라우저 컨텍스트에서 사용함
    • C/Objective-C로 작성된 네이티브 바인딩을 Zig 래퍼로 감싸서 Bun 프로세스가 실행함
    • 크로스 플랫폼을 목표로 하지만 안정성에 우선 집중하고 있음
    • CLI가 업데이트, 코드 서명 등을 처리하며, 빌드 아티팩트를 생성하여 S3나 정적 파일 호스트에 업로드할 수 있음
    • Zig로 최적화된 bsdiff 구현을 통해 4KB 크기의 업데이트를 자동 생성함
    • Zstd를 사용하는 자체 Zig 셀프 추출 메커니즘으로 초기 다운로드 크기를 최소화함
    • Bun과 브라우저 프로세스 간에 메서드 시그니처와 핸들러만 작성하면 되는 암호화된 RPC 메커니즘을 제공함
    • OOPIF 구현을 통해 성능이 뛰어나고 사용하기 쉬운 격리된 브라우저 컨텍스트를 HTML <electrobun-webview> 요소로 임베드할 수 있음
  • OS별 기능을 순수 타입스크립트로 어떻게 관리하는지, Tauri와 비교하여 크기와 속도에서 어떤 차이가 있는지 궁금해하는 의견이 있음

  • Electrobun의 렌더링 엔진에 대한 질문이 있으며, 프로젝트 이름이 Electron을 암시하지만 언급되지 않음

    • Electrobun Playground 앱의 크기가 50.4MB로, 대부분이 Bun 런타임임
  • Electrobun의 성장을 지켜보는 것이 흥미롭다는 의견이 있으며, 바로 참여하지는 않겠지만 훌륭한 프로젝트라고 평가함

  • Electrobun은 Node.js를 Bun으로, Chromium을 WebView로 대체한 Electron이라는 의견이 있음

  • 크로스 플랫폼 앱을 만들기 위한 대안이 많을수록 좋다는 의견이 있음

  • Electrobun이 NeutralinoJS, Electrino, DeskGap과 같은 또 다른 웹뷰 기반 프레임워크인지, Node 대신 Bun을 사용하는 것 외에 어떤 장점이 있는지 궁금해하는 의견이 있음

    • 정말 가벼운 크로스 플랫폼 데스크톱 앱을 위해서는 Qt, GTK, wxWidgets, FLTK 1.4와 같은 비웹뷰 기반 네이티브 프레임워크를 사용하는 것이 좋다고 제안함
  • 메인 프로세스와 웹뷰 프로세스 간의 격리로 인한 성능 문제를 우려하는 의견이 있음

    • IPC 브리지를 사용하여 데이터를 공유해야 하며, 이는 모든 공유 데이터를 복사해야 함
    • 예를 들어, ffmpeg를 사용하여 비디오를 디코딩할 때 각 프레임을 렌더링하기 전에 디코딩된 이미지를 복사해야 함
  • Electron의 대안으로 Bun을 사용하는 것이 좋지만, Electron보다 나은 것은 낮은 기준이라고 평가함

    • Bun이 FreeBSD에서 작동하기를 기다리고 있으며, 크리스마스 위시리스트에 포함되어 있다고 언급함