# Electrobun – 초고속·초경량 크로스플랫폼 데스크톱 앱 프레임워크

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26950](https://news.hada.io/topic?id=26950)
- GeekNews Markdown: [https://news.hada.io/topic/26950.md](https://news.hada.io/topic/26950.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-02-24T10:29:27+09:00
- Updated: 2026-02-24T10:29:27+09:00
- Original source: [blackboard.sh](https://blackboard.sh/blog/electrobun-v1/)
- Points: 58
- Comments: 5

## Summary

**Bun과 Zig**를 결합해 만든 초경량 **TypeScript 기반 데스크톱 앱 프레임워크**입니다. macOS·Windows·Ubuntu를 모두 지원하며, 인스톨러와 자동 업데이트, **차등 패치 아티팩트**를 자동 생성해 배포 과정을 단순화합니다. Bun의 **FFI와 공유 메모리 모델**을 활용해 다중 프로세스 환경에서도 효율을 유지하며, OOPIF 기반 웹뷰로 안정적인 UI 격리를 제공합니다. `npx electrobun init`으로 시작해 10분 안에 배포까지 가능한 **통합 워크플로우**를 목표로 합니다.

## Topic Body

- 메인 프로세스에 **Bun**, 네이티브 바인딩에 **Zig**를 사용하는 **TypeScript 기반 데스크톱 앱 프레임워크**  
- **macOS, Windows, Ubuntu**를 모두 지원하며, 인스톨러·자동 업데이트·차등 패치 아티팩트를 자동 생성  
- 창 제어, 메뉴, 단축키, 클립보드, 대화상자, 세션 저장소 등 **완전한 데스크톱 기능 세트**를 제공하며, **OOPIF 기반의 안정적 웹뷰** 구현  
- 내부 구조는 **Bun의 FFI와 공유 메모리 모델**을 활용해 다중 프로세스 환경에서도 효율성을 유지  
- Electron과 Tauri의 한계를 경험한 개발자가 2년간 Zig, C, C++, Objective-C를 학습하며 직접 개발   
- 5분 안에 코드 작성, 10분 안에 배포까지 가능한 **통합 워크플로우**가 목표   
  
---  
  
### Electrobun 프로젝트 개요 및 목표  
- **Bun**으로 메인 프로세스를 실행하고 웹뷰 TypeScript를 번들링하며, **Zig**로 네이티브 바인딩을 작성하는 구조  
- 메인 프로세스와 웹뷰 모두 TypeScript로 작성하되, 프로세스 간 **격리(isolation)** 를 유지하면서 빠르고 타입이 지정된 RPC 통신 제공  
- 자체 추출 앱 번들 크기 약 **12MB**(시스템 웹뷰 사용 시, 대부분 Bun 런타임 크기)  
- bsdiff 기반 차등 업데이트로 패치 크기 최소 **14KB**까지 축소 가능  
- 5분 안에 코드 작성 시작, 10분 안에 배포까지 완료할 수 있는 **하나의 통합 워크플로우** 제공이 목표  
- `npx electrobun init` 명령어로 템플릿 기반 프로젝트 시작 가능  
  
### 제작 배경  
- Visual Basic 6 시절부터 데스크톱 앱을 만들어 왔으며, **Adobe AIR** 시대에 여러 스타트업 제품을 수천 명에게 배포했던 경험이 원점  
- 20년 이상 스타트업 초기 엔지니어로 유니콘 규모 제품을 구축·확장해 왔지만, 데스크톱 개발 환경은 오히려 퇴보  
- 하이브리드 웹 브라우저+코드 에디터+PTY 터미널인 **co(lab)** 을 만들다가 너무 많은 불편함에 부딪혀 직접 프레임워크 제작을 결심  
- 첫 버전은 **Electron**으로 만들었으나, 코드 서명·공증·배포·업데이트 과정이 앱 개발보다 프레임워크와 싸우는 느낌  
- 웹처럼 **지속적 배포(continuous shipping)** 를 원했지만, 기존 툴체인이 이를 필요 이상으로 어렵게 만듦  
- **Tauri**도 시도했으나 Rust가 모든 개발자에게 적합하지 않다고 판단했고, 당시 Bun은 1.0 출시 수개월 전 상태여서 직접 개발에 착수  
  
### macOS에서 크로스플랫폼으로  
- 초기에는 macOS 앱만 빌드 가능했으나, 현재는 **macOS, Windows, Ubuntu** 모두에서 빌드·배포를 1급으로 지원  
- 인스톨러, 자동 업데이트 아티팩트, **차등 패치(differential patches)** 가 모두 자동 생성됨  
- 정적 호스트(R2, S3, GitHub Releases)만 연결하면 배포 완료  
- 차등 업데이트는 C에서 Zig로 포팅하고 **SIMD와 zstd**로 최적화한 [zig-bsdiff](https://blackboard.sh/blog/introducing-zig-bsdiff)가 담당  
- **Bun의 FFI**가 안정화되면서 기존에 작성한 Zig FFI 계층 대부분을 Bun으로 대체  
- 아키텍처가 긍정적으로 전환되어, Bun이 워커 생성 시 **공유 메모리**를 사용하므로 다중 프로세스에서도 효율 유지  
  
### 출시된 기능  
- 현재 완전한 프레임워크로서 **크로스플랫폼 윈도우 컨트롤**, 메뉴, 단축키(accelerators), 글로벌 숏컷, 클립보드, 다이얼로그, 웹뷰 파티션, 세션 스토리지, 페이지 내 검색(find-in-page), 번들링·업데이트 툴링 등을 제공  
- **OOPIF(Out-of-Process Iframe)** 구현이 실제로 동작하는 수준에 도달  
  - Electron의 `&lt;webview&gt;` 태그는 Chromium에서 deprecated되었으나 아직 대안이 마련되지 않은 상태  
  - **`&lt;electrobun-webview&gt;`** 는 DOM 포지셔닝, 프로세스 격리, 레이어링이 정상 작동하는 진정한 "super iframe"  
  - 커서 깜빡임(cursor flicker) 문제 없이, 브라우저 엔진 패치 없이 크로스플랫폼 동작  
  
### 플랫폼 지원 현황  
- **macOS 14+**: 공식 지원  
- **Windows 11+**: 공식 지원  
- **Ubuntu 22.04+**: 공식 지원  
- 기타 Linux 배포판(gtk3, webkit2gtk-4.1): 커뮤니티 지원  
  
### 향후 계획  
- [co(lab)](https://blackboard.sh/colab/)을 Electrobun 위에 **전면 재작성** 완료, v1 안정화를 기반으로 co(lab) 개발에 본격 집중  
- 프레임워크가 **플랫폼 변동(platform churn)** 에 흔들리지 않고 야심찬 장기 프로덕트를 구축할 수 있을 만큼 안정화된 것이 핵심 목표  
- Discord 커뮤니티가 성장 중이며, 베타 테스트·이슈 제출·피드백으로 기여한 사용자들이 프레임워크 형성에 기여  
- Electrobun은 **[Blackboard](https://blackboard.sh/)** 에서 출시하는 첫 번째 주요 프로덕트

## Comments



### Comment 52203

- Author: myname1260
- Created: 2026-03-03T07:43:10+09:00
- Points: 1

co(lab) 전면 재작성이라고 적혀 있어 구글이랑 함께 ipynb 실행용 클라우드 안정성을 개선해주는 거라고 생각했으나 전혀 연관 없는 Blackboard팀의 개발 프로젝트  
  
그래도 npx 로 설치하는 OOPIF가 접근 가능한 것은 중요한 경험으로 보인다

### Comment 51801

- Author: geekbini
- Created: 2026-02-24T16:46:22+09:00
- Points: 1

"코드 서명·공증·배포·업데이트 과정이 앱 개발보다 프레임워크와 싸우는 느낌"  
  
본문의 제작 배경에 위와 같은 언급이 있는데,  
실제 앱 개발보다 배포하는데 더 많은 공수가 들어가는 경우가 있는데   
이 문제를 fix한 것으로 만으로도 높이 평가합니다.

### Comment 51785

- Author: bus710
- Created: 2026-02-24T14:31:10+09:00
- Points: 1

플러터에 zig 붙이는 것도 꽤 쉽고 간단하게 되더군요.   
Dart/c ffi 문서와 큰 차이 없이...

### Comment 51768

- Author: mammal
- Created: 2026-02-24T11:52:14+09:00
- Points: 1

> 왜 주요 Linux 배포판들이 기본 WebView를 제공하지 않는지 의문임. 앱 생태계 확장에 큰 장애임  
  
GUI 환경의 운영체제라면 이제 WebView가 기본 컴포넌트로 자리 잡아야 할 것 같아요.

### Comment 51760

- Author: neo
- Created: 2026-02-24T10:29:27+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47069650) 
- 안녕하세요, **Electrobun** 제작자임  
  이번에 v1 안정 버전을 출시했음. 아키텍처를 고정했고, 만약 **버그**나 Electron/Tauri에서 쓰던 API가 필요하면 [GitHub 이슈](https://github.com/blackboardsh/electrobun/issues)에 남겨주면 우선순위로 처리할 예정임  
  지난 한 달간 5만 줄의 코드를 수정하며 안정화 작업을 마쳤음  
  Electrobun으로 만든 오픈소스 프로젝트 **Colab**(웹 브라우저 + 코드 에디터 + PTY 터미널)의 [데모 영상](https://www.youtube.com/watch?v=WWTCqGmE86w)도 있음  
  Electrobun은 기본적으로 시스템 **WebView**를 사용하지만, `bundleCEF` 옵션으로 CEF를 포함할 수도 있음. 구조적으로 WebView에 독립적이라 Servo나 Ladybird가 준비되면 바로 대체 가능함  
  또한 각 릴리스마다 **zstd 기반의 자동 압축 패키지**를 생성해 초기 다운로드 크기를 줄이고, 업데이트는 14KB 수준으로 작게 유지할 수 있음  
  - 타입 정의가 문서와 일치하는지 궁금함. 예를 들어 BrowserWindow에 `partition` 키를 넣으면 TypeScript 오류가 발생함  
  - Electrobun을 만들어줘서 고맙다는 인사  

- Electrobun이 매우 유망해 보임. 다음 프로젝트를 이걸로 만들 예정임  
  **Full TypeScript 스택**에서 가장 생산성이 높음. Rust나 긴 컴파일 과정 없이 Electron보다 가볍고 빠른 대안을 얻게 되어 기쁨  
  - 첫 번째 **Tauri 앱**을 막 완성했는데, Windows 빌드가 너무 오래 걸려 놀랐음. Electrobun을 꼭 써볼 생각임  

- Discord에서 많은 **게임 개발자**들이 Electrobun으로 데스크톱 게임을 실험 중임  
  Steam 인디 게임 시장에서 Electron의 일부를 대체할 가능성이 있음  
  특히 `bun --watch game.ts`로 **즉시 리로드**되는 TypeScript 게임 개발 경험이 매우 빠르고 매끄러움  
  - 웹 개발을 많이 하는 입장에서, 도구를 떠나서도 Bun은 **성능 면에서 큰 도약**임  
  - Electron으로 만든 게임이 많지는 않음. CrossCode 정도가 기억남. 대부분은 Unity나 Godot을 사용함  
  - 어떤 Discord 서버에서 그런 실험이 이루어지는지 궁금함. 참여하고 싶음  
  - Node도 이제 **watch 모드**와 TypeScript 실행을 지원함  

- Tauri의 주요 문제는 시스템 **WebView 품질**이 OS마다 다르다는 점임  
  Linux에는 공식 WebView가 없고, Windows 7이나 초기 10에서는 Edge WebView를 쓰지 않음. 이런 차이 때문에 20초 이상 부팅이 걸리기도 함  
  100MB 절약을 위해 이런 트레이드오프를 감수해야 하는지 의문임  
  대부분의 사용자는 빠른 인터넷을 쓰므로 다운로드 속도는 큰 문제가 아님  
  Electrobun이 **내장 Chromium 렌더러**를 지원하는지 궁금했는데, 문서에서 명확하지 않았음  
  - Electrobun은 기본적으로 시스템 WebView를 사용하지만, 필요 시 **CEF(Chromium)** 을 번들할 수 있음. [공식 문서](https://blackboard.sh/electrobun/docs/guides/what-is-electrobun/)에 명시되어 있음  
  - 제품 사이트에도 “System’s native webview as renderer, CEF optional”이라고 되어 있음. 즉, 선택 가능함  
  - Windows에서 Tauri 앱을 만들 때 [embedded bootstrapper](https://v2.tauri.app/distribute/windows-installer/#embedded-bootstrapper)를 써야 했음. Electrobun은 이런 문제를 잘 해결한 것 같아 반가움  
  - 왜 주요 Linux 배포판들이 기본 **WebView**를 제공하지 않는지 의문임. 앱 생태계 확장에 큰 장애임  
  - Tauri에서도 CEF 기반 버전이 개발 중임. [관련 브랜치](https://github.com/tauri-apps/tauri/tree/feat/cef) 참고 가능함. OS WebView 품질이 낮기 때문에 이 접근이 훨씬 나은 개선책이 될 것 같음  

- 제목에 이 글이 **프로젝트 회고 블로그 포스트**라는 점을 명시했으면 좋겠음  
  실제 프로젝트는 [공식 문서 링크](https://blackboard.sh/electrobun/docs)로 보는 게 더 적절함  

- 프로젝트 메인 페이지는 [여기](https://blackboard.sh/electrobun/docs/)임  
  인터페이스가 깔끔해 보이고, 나는 **Zig**에 익숙해서 Rust보다 접근하기 쉬울 듯함  

- 이번 주 회사에서 새 **Electron 앱**을 배포할 예정인데, Electrobun이 1년만 빨리 나왔어도 좋았을 것 같음  
  Electron Builder가 업데이트와 서명 과정을 어느 정도 단순화해주지만 여전히 번거로움  
  다음 개인 프로젝트에서는 Electrobun을 시도해볼 생각임  

- 글에서 **notarizing과 stapling** 문제를 언급했는데, Xcode를 쓰지 않으면 Apple이 이 과정을 매우 어렵게 만들어둠  
  Windows도 CI 자동화가 쉽지 않음. Electrobun이 더 나은 솔루션을 제공한다면 매우 관심 있음  
  - 대부분의 경우 기본 설정으로 지원됨. 환경 변수를 몇 개 설정하고 `notarize: true`로 빌드하면 됨  
    Electrobun으로 서명과 공증을 여러 번 해봤는데 문제없었음. 복잡한 케이스를 위한 **escape hatch**도 제공함  
    도움이 필요하면 Discord에서 DM 주면 됨. (Electrobun 관계자는 아니지만 Apple 공증 시스템의 고통을 잘 앎)  

- Electron 앱이 500MB 이상이라면, Electrobun의 14MB는 정말 **작은 크기**로 느껴짐  
  - 일반적인 macOS용 Electron 앱(DMG)은 약 80MB인데, Electrobun은 약 16MB 수준임  

- Ubuntu 외의 배포판은 현재 **지원 범위 밖**이라 아쉬움  
  관련 논의는 [이슈 코멘트](https://github.com/blackboardsh/electrobun/issues/4#issuecomment-3850916198)에서 확인 가능함
