bunium
v0.0.6
Published
Electron-like desktop app framework — Bun + CEF, not Node + Chromium-via-Electron.
Downloads
386
Maintainers
Readme
What is this
bunium is a from-scratch alternative to Electron. Instead of Node + Chromium bundled by Electron's own build, bunium runs on the Bun runtime and embeds CEF (the Chromium Embedded Framework) directly, rendered into a native layer — not a system WebView, not Electron's fork of Chromium. Every window is real Chromium.
- DOM-integrated
<bunium-webview>— a real custom element, not an iframe hack, clipped/z-ordered/hit-tested as a native sublayer. - Typed IPC — one generic transport, discriminated-union message maps checked on both sides at compile time.
- Vite dev,
bunium://prod — pointloadURLat a Vite dev server for HMR; serve built output over a custom scheme in production. - Native system surface — menu bar, tray, notifications, dialogs, each a thin typed wrapper over a flat C ABI, per platform.
- Auto-update — bsdiff patch-or-full-manifest updater that never re-downloads the CEF layer, with crash-journal self-repair.
- macOS · Linux · Windows — all three ports build, package, and pass smoke tests in CI.
Status
Window/paint, typed IPC, <bunium-webview>, Vite dev + prod scheme, native system
features, packaging/codesigning, auto-update, CEF resource trim, and per-platform npm
packages are all implemented and verified on macOS, Linux, and Windows. See
ARCHITECTURE.md for the load-bearing technical decisions behind
each one, and Publishing for the release pipeline.
Quickstart
bunx --bun create-bunium-app my-app --template=solid-ts
cd my-app
bun install
bun devTemplates: react-ts, react-js, solid-ts, solid-js, vue-ts, vue-js — all
Vite-based. Full walkthrough: Getting started.
import { app, BuniumWindow } from "bunium";
const win = new BuniumWindow({
url: "https://example.com",
width: 1024,
height: 700,
title: "Hello",
});
win.onClose(() => app.shutdown());Docs
Full site: erfanmola.github.io/bunium
- Getting started
- Window · Typed IPC ·
<bunium-webview>· System features - Packaging · Auto-update
- API reference
Contributing
This is an active solo project; issues and PRs are welcome but expect the API surface
to keep moving pre-1.0. See ARCHITECTURE.md before touching native
code — several approaches were deliberately tried and rejected there. Building
bunium's own native layer (not needed to just use bunium): Windows build
guide, Dev from macOS,
Publishing.
