Chromium, on your terms.

A composable Chromium runtime for Rust. One engine on every OS: your event loop, your windows, your lifecycle. No Node.js attached.

cargo install --git https://github.com/0x48piraj/kurogane kurogane-cli

Linux · Windows · macOS

Demo video · placeholder: the video isn’t available yet.

kurogane demo0:48

Why Kurogane

System WebViews aren’t one engine. They’re three.

WebKitGTK on Linux, WebView2 on Windows, WKWebView on macOS. Each one renders, schedules the GPU and breaks differently — and none of it is yours to control.

Kurogane ships one Chromium to every platform — without Electron’s runtime strapped to it.

BEFORE · SYSTEM WEBVIEWS

  • WebKitGTKLinux
  • WebView2Windows
  • WKWebViewmacOS

3 engines · 3 renderers · 3 sets of bugs

AFTER · KUROGANE

One Chromium.
Every OS.

  • linux
  • windows
  • macos

chromium 147.0.10

$ kurogane dev

The building blocks for Chromium apps you actually control.

  • RuntimeChromium via CEF, owned by your host
  • IPCStructured messaging between Rust and JS
  • CLInew · dev · init · bundle

Fits your architecture

Embed into a host with its own event loop, windows or GUI framework.

Built for heavy rendering

WebGL, Canvas and WASM workloads that can’t tolerate WebView variance.

Chromium, minus Electron

No embedded Node.js, no imposed process model, direct lifecycle hooks.

Custom shells & engines

Control browser processes, renderer extension points and IPC.

Rust drives.Chromium renders.

Workflow

Scaffold to installer
in four commands.

kurogane new my-app

scaffolded my-app/ from the react starter

cd my-app && kurogane dev

chromium runtime resolved · window open

# already have a Vite app? start here instead

kurogane init

wrapped ./ without touching your files

kurogane bundle

dist/my-app-0.1.0.dmg

# AppImage on Linux · NSIS installer on Windows

  1. Start from a template

    Vanilla, React, Svelte or Vue: Rust host included.

  2. Run it for real

    Against your dev server. The matching Chromium runtime is resolved for you.

  3. Or bring your own

    Your files stay exactly as they are.

  4. Ship it

    An AppImage, an NSIS installer, or a .app with DMG: one per platform.

Honest comparison

Kurogane, Electron
or Tauri?

Want the smallest binary? Use Tauri. Need Node.js APIs? Use Electron. Need Chromium’s consistency with full control of the host? That’s what Kurogane is for.

Kurogane compared with Electron and Tauri
FeatureKuroganeElectronTauri
Rendering engineChromium (CEF)ChromiumSystem WebView
Same engine on every OSYesYesNo
Host languageRustJavaScript · Node.jsRust
Embedded Node.js runtimeNoneBundledNone
Who owns the event loopYour appThe frameworkThe framework
Embeds into an existing appYesNoNo
Smallest binaries——Yes
Reach for it whenYou need control and identical renderingYou need Node.js APIsBinary size matters most

Features

Everything Chromium, nothing imposed.

Pixel-identical everywhere

The same engine and GPU paths on Linux, Windows and macOS — no WebView roulette.

  • Linux · AppImage
  • Windows · NSIS
  • macOS · .app + DMG

Rust ↔ JS IPC

Structured messages for small calls, shared memory for big buffers.

// rendererconst res = await kurogane  .invokeBinary(frame) // ≥ large payloads → shared memory// 809 MB/s at 20 MB

Multi-window

Orchestrate windows, popups and delegates from the host.

Bring your own event loop

Integrate with winit or any host-managed loop. Kurogane plugs into your architecture — not the other way round.

Performance

Faster than Electron
where it counts.

Same machine, same Chromium, same workloads — RPC round-trips and binary transfers from 1 KB to 20 MB, measured against Electron 42.

See all benchmarks
  • 1.34×

    faster RPC round-trips

    118.8 ms vs 158.9 ms

  • 1.72×

    faster 10 MB transfers

    1.50 s vs 2.58 s

  • 2.84×

    faster 20 MB transfers

    4.94 s vs 14.06 s

  • 809

    MB/s peak IPC throughput

    vs 285 MB/s on Electron

Open source · MIT · v0.0.3

Compose ityour way.

Install the CLI, run kurogane showcase, and star the repo to follow what ships next.

cargo install --git https://github.com/0x48piraj/kurogane kurogane-cli