TL;DR

  • Electrobun 2.0은 시스템 웹뷰를 사용할 때 압축된 Hello World 앱 다운로드 크기가 약 1MB인 크로스 플랫폼 데스크톱 앱 프레임워크임.
  • TypeScript, Zig, Rust, Go, Odin을 같은 코어·빌드 도구·패키징 체계에서 사용할 수 있으며, 기본 TypeScript 외에 컴파일 성능이 필요한 경우 다른 언어를 선택함.
  • Warren은 세밀한 반응형 UI와 네이티브 GPU 표면 렌더링을 지원하고, Cottontail은 Zig와 JavaScriptCore 기반 TypeScript 런타임이며, Hutch는 패키지·스크립트·번들링·툴체인·릴리스를 통합하는 CLI임.
  • 차등 업데이트, Zstandard 자체 압축 해제 번들, 코드 서명·공증, three.js·Babylon 어댑터, 선택형 Chromium 번들링, 카나리·프로덕션 채널을 기본 기능으로 제공함.
  • 30개 스타터 템플릿과 대화형 초기화 도구를 제공하며, macOS ARM64 시스템 웹뷰 기준 압축 Hello World 다운로드 크기는 Electrobun 네이티브 메인 프로세스 1.28MiB, Cottontail 약 15MiB, 일반적인 Electron 앱 약 85MiB임.

Electrobun 소개

  • Electrobun은 빠르고 작은 크기의 크로스 플랫폼 데스크톱 앱을 만드는 프레임워크이며, Hello World 앱의 크기는 약 1MB임.
  • 지원 언어는 TypeScript, Zig, Rust, Go, Odin이며, 렌더러로 시스템 웹뷰, Chromium 또는 WGPU를 사용할 수 있음.
  • 문서와 GitHub 저장소를 제공하며, Hutch 설치 명령은 다음 주소를 사용함: https://hutch.blackboard.sh/hutch/install.sh 및 https://hutch.blackboard.sh/hutch/install.ps1.
  • 설치 후 hutch electrobun init 명령으로 앱을 초기화함.
  • 언어별 시작 코드는 같은 앱 창과 views://mainview/index.html 웹뷰를 구성하는 예시임. 전체 단계별 안내는 각 언어별 문서에 있음.

앱 크기

  • macOS ARM64에서 시스템 웹뷰 렌더러를 사용한 압축 Hello World 다운로드 크기는 Electrobun 네이티브 메인 프로세스 1.28MiB, Electrobun Cottontail 약 15MiB, 일반적인 Electron 앱 약 85MiB임.

2.0의 새 기능

  • Warren은 Electrobun용 SolidJS 영감의 세밀한 반응성 프레임워크임. Cottontail 또는 Bun 프로세스에서 독립 창이나 웹뷰에 합성되는 네이티브 GPU 표면으로 직접 렌더링하거나, 웹뷰 안에서 웹 UI의 세밀한 반응성을 구동함.
  • Hutch는 패키지, 스크립트, 번들링, 고정 툴체인, 릴리스를 처리하는 단일 CLI이며, npm, Bun, 기존 Electrobun CLI를 대체함.
  • Cottontail은 Zig와 JavaScriptCore로 만든 자체 TypeScript 런타임임. 필요한 범위에서 Node.js 및 Bun과 호환되며 둘보다 작음.
  • 여섯 가지 메인 프로세스 선택지는 기본 TypeScript와 컴파일 성능을 위한 Zig, Rust, Go, Odin임. 모두 같은 코어, 빌드 도구, 패키징을 사용함.
  • hutch electrobun init은 키보드로 탐색하는 템플릿 선택기를 열며, 프레임워크 셸부터 GPU 시뮬레이션까지 30개 스타터를 제공함.

기본 제공 기능

  • 차등 업데이트는 zig-bsdiff를 사용하며, 업데이트 크기는 4KB까지 작아질 수 있음. 자체 S3, R2 또는 정적 파일 호스트를 연결할 수 있고, 업데이트 서버 없이 전체 다운로드 대체 경로도 제공함.
  • Zstandard 자체 압축 해제 번들은 검증, 압축 해제, 첫 실행을 지원함.
  • 코드 서명과 공증은 릴리스 빌드의 일부로 실행됨. macOS에서는 DMG, Windows에서는 설치 실행 파일, Linux에서는 자체 압축 해제 설치 프로그램을 생성함.
  • three.js 및 Babylon 어댑터를 사용하면 Cottontail 또는 Bun에서 네이티브 GPU 창과 웹뷰에 합성되는 표면을 제어할 수 있음.
  • 기본 설정에서는 시스템 웹뷰를 사용해 앱을 작게 유지하며, 모든 환경에서 같은 엔진을 원하면 고정된 Chromium을 번들링할 수 있음.
  • 카나리 및 프로덕션 채널을 기본 제공하며, 프로덕션 앱과 함께 테스터에게 사전 공개 빌드를 배포할 수 있음.

30개 시작 템플릿

  • 웹 프레임워크 스타터는 핫 리빌드 개발 모드를 갖춘 데스크톱 셸에 각 스택을 연결함: react-tailwind-vite, solid, svelte, vue, angular, vanilla-vite, tailwind-vanilla.
  • 앱 골격은 탭, 창, 저장소, 트레이, 미디어 등 실제 앱 패턴을 다룸: multitab-browser, multi-window, notes-app, sqlite-crud, photo-booth, tray-app, hello-world, bunny.
  • GPU 및 네이티브 템플릿은 WGPU를 구동하는 네이티브 메인 프로세스를 다루며, 시뮬레이션·입자·3D 예제를 포함함: zig-wgpu, rust-flock-wgpu, go-maze-wgpu, odin-particles-wgpu, odin-fluid-wgpu, odin-jelly-bunny-wgpu, odin-alchemy-wgpu, odin-tree-wgpu, wgpu, wgpu-threejs, wgpu-babylon, wgpu-mlp.
  • Warren UI 실험 템플릿은 웹뷰를 거치지 않고 GPU로 렌더링하는 반응형 UI를 다룸: ui-wgpu, ui-color-picker, ui-launcher.

Electrobun으로 만든 제품

  • 데스크톱 제품 Dash는 Electrobun 2.0으로 처음부터 끝까지 구축됨. Hutch가 빌드하고 Cottontail이 실행하며 Warren이 일부를 렌더링하고, 업데이트는 바이너리 차등 방식으로 배포됨.

시작하기

  • Hutch 설치 후 hutch electrobun init을 실행해 앱을 시작함.
  • 빠른 시작 안내, GitHub, Discord를 제공함.