# ElectroBun
ElectroBun is a framework for building cross-platform desktop applications with [[TypeScript]]. Think of it as a Rust-less [[Tauri]]: it uses [[Bun]] as the runtime/bundler, Zig for native bindings, and the system's native webview for rendering — so you only write TypeScript. Optional CEF (Chromium Embedded Framework) support for when you need a consistent cross-platform webview.
## Performance
- **14MB** bundle size
- **14KB** update size
- **<50ms** startup time
- **100%** native feel
## Key Features
- **Bun-powered**: Bun handles both the main process and webview TypeScript bundling
- **Native webview**: Uses the system webview by default, optional CEF for cross-platform consistency
- **Typed RPC**: Custom encrypted RPC mechanism between Bun and browser processes
- **OOPIF implementation**: Embed isolated browser contexts with `<electrobun-webview>` HTML elements
- **Built-in updater**: Custom bsdiff-based update mechanism (14KB updates)
- **Code signing & notarization**: Built-in support across platforms
- **System tray, menus, draggable regions**: Full native desktop APIs
## Architecture
- **Main process**: Bun runtime
- **Native bindings**: C++, Objective-C, Zig
- **Rendering**: System native webview or CEF
- **Bundler**: Bun
## APIs
- BrowserWindow, BrowserView
- Application Menu, Context Menu
- Tray
- Updater
- Events system
- Draggable regions
## Installation
```bash
bunx electrobun init
```
## Platform Support
macOS, Windows, Linux.
## References
- GitHub: https://github.com/blackboardsh/electrobun
- Docs: https://blackboard.sh/electrobun/docs/
## Related
- [[Tauri]]
- [[Electron]]
- [[Bun]]
- [[TypeScript]]
- [[Desktop Applications]]