# Electrobun - TypeScript로 작성된 크로스 플랫폼 데스크톱 애플리케이션

> Clean Markdown view of GeekNews topic #17890. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17890](https://news.hada.io/topic?id=17890)
- GeekNews Markdown: [https://news.hada.io/topic/17890.md](https://news.hada.io/topic/17890.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-22T09:51:31+09:00
- Updated: 2024-11-22T09:51:31+09:00
- Original source: [electrobun.dev](https://electrobun.dev/)
- Points: 15
- Comments: 5

## Summary

Electrobun은 Typescript로 작성된 크로스 플랫폼 데스크톱 애플리케이션을 구축, 업데이트 및 배포하기 위한 솔루션으로, bun을 사용하여 메인 프로세스를 실행하고 zig로 작성된 네이티브 바인딩을 포함합니다. 이 솔루션은 메인과 웹뷰 프로세스 간의 격리로 보안과 성능을 보장하며, 약 12MB의 작은 앱 번들과 4KB만큼 작은 업데이트로 대역폭 비용을 절감할 수 있습니다. 또한, 5분 내에 코드 작성을 시작하고 10분 내에 배포할 수 있는 완전한 통합 워크플로우를 제공합니다.

## Topic Body

- Electrobun은 Typescript로 작성된 초고속, 경량, 크로스 플랫폼 데스크톱 애플리케이션을 구축, 업데이트 및 배포하기 위한 완전한 솔루션을 제공하는 것을 목표로 함  
- bun을 사용하여 메인 프로세스를 실행하고 웹뷰 Typescript를 번들링하며, zig로 작성된 네이티브 바인딩을 포함  
- # 주요 기능  
  - **Typescript**: 메인 프로세스와 웹뷰를 위한 Typescript를 작성할 수 있으며, 하나의 언어로 간편하게 작업 가능함.  
  - **빠름**: 메인과 웹뷰 프로세스 간의 격리로 보안과 성능을 보장하며, 빠르고 타입이 지정된 RPC를 쉽게 구현할 수 있음.  
  - **작음**: 약 12MB의 작은 자체 추출 앱 번들과 4KB만큼 작은 앱 업데이트로 자주 배포하면서 대역폭 비용을 절감할 수 있음.  
  - **완전한 통합**: 5분 내에 코드 작성을 시작하고 10분 내에 배포할 수 있는 완전한 통합 워크플로우를 제공함.

## Comments



### Comment 31763

- Author: tsboard
- Created: 2024-11-27T14:39:29+09:00
- Points: 1

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

### Comment 31614

- Author: aer0700
- Created: 2024-11-23T09:15:14+09:00
- Points: 1

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

### Comment 31607

- Author: tinywolf
- Created: 2024-11-23T07:29:49+09:00
- Points: 1

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

### Comment 31604

- Author: pmc7777
- Created: 2024-11-22T19:48:53+09:00
- Points: 1

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

### Comment 31584

- Author: neo
- Created: 2024-11-22T09:51:31+09:00
- Points: 2

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42199486) 
- 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 &lt;electrobun-webview&gt; 요소로 임베드할 수 있음

- 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에서 작동하기를 기다리고 있으며, 크리스마스 위시리스트에 포함되어 있다고 언급함
