⚡ Ultra-lightweight Electron alternative. Build cross-platform desktop apps with Node.js & C++ without the Chromium bloat (~5MB vs 150MB+). Drop-in Electron-compatible API.
JavaScript
1
10 commits
updated Sep 30, 2026
Ship only what you use. Eliminate everything else. The ultra-lightweight Electron alternative.
Adrenaline.js is an ultra-lightweight, high-performance desktop application framework for Node.js developers. By using native OS system webviews (WebKit on macOS/Linux, WebView2 on Windows) instead of bundling an entire Chromium browser, Adrenaline delivers blazing-fast desktop applications with tiny bundle sizes and minimal memory footprint.
app, BrowserWindow, and ipcMain out of the box with zero learning curve.npx adrenaline-js init and adrenaline dev.Scaffold and launch a new project in seconds:
# 1. Create a new Adrenaline.js project
npm install adrenaline-js
# or scaffold a new project:
npx adrenaline-js init my-app
# 2. Navigate to your project folder
cd my-app
# 3. Install dependencies
npm install
# 4. Launch your desktop app!
npx adrenaline dev
| Feature | Adrenaline.js ⚡ | Electron ⚛️ | Tauri 🦀 |
|---|---|---|---|
| Language / Runtime | Node.js / JavaScript | Node.js / JavaScript | Rust / Web view |
| App Bundle Size | ~5 – 10 MB | ~150 MB+ | ~5 – 10 MB |
| Memory Footprint | Ultra-Low (~30 MB) | High (150 MB+) | Ultra-Low (~30 MB) |
| Backend Language | JavaScript / Node.js | JavaScript / Node.js | Rust |
| Learning Curve | Zero (Electron-like API) | Easy | High (Requires Rust) |
| npm Ecosystem | Full Native Support | Full Native Support | Limited (Requires Rust bridges) |
| Rendering Engine | System Native Webview | Bundled Chromium | System Native Webview |
main.js)const { app, BrowserWindow, ipcMain } = require('adrenaline-js');
const path = require('path');
app.whenReady().then(() => {
const win = new BrowserWindow({
width: 800,
height: 600,
title: 'My Adrenaline App'
});
win.loadFile(path.join(__dirname, 'index.html'));
ipcMain.on('ping', (event, data) => {
console.log('Received ping from renderer:', data);
win.webContents.send('pong', { reply: 'Pong from Node.js!' });
});
});
index.html)<!DOCTYPE html>
<html>
<head>
<title>My Adrenaline App</title>
</head>
<body>
<h1>Hello Adrenaline.js!</h1>
<button onclick="sendPing()">Ping Main Process</button>
<script>
function sendPing() {
window.adrenaline.send('ping', { time: Date.now() });
}
window.adrenaline.on('pong', (data) => {
alert(data.reply);
});
</script>
</body>
</html>
Adrenaline comes with a fast CLI tool for development:
adrenaline init <project-name> / adrenaline create <project-name>: Scaffold a modern starter project.adrenaline dev / adrenaline start: Run the desktop app in current directory.adrenaline --version / -v: Display CLI version.adrenaline --help / -h: Display help options.This project is licensed under the MIT License.
JavaScript
52.1%
C++
31.3%
HTML
13.0%
Python
3.6%
⚡ Ultra-lightweight Electron alternative. Build cross-platform desktop apps with Node.js & C++ without the Chromium bloat (~5MB vs 150MB+). Drop-in Electron-compatible API.
JavaScript
1
10 commits
updated Sep 30, 2026
Ship only what you use. Eliminate everything else. The ultra-lightweight Electron alternative.
Adrenaline.js is an ultra-lightweight, high-performance desktop application framework for Node.js developers. By using native OS system webviews (WebKit on macOS/Linux, WebView2 on Windows) instead of bundling an entire Chromium browser, Adrenaline delivers blazing-fast desktop applications with tiny bundle sizes and minimal memory footprint.
app, BrowserWindow, and ipcMain out of the box with zero learning curve.npx adrenaline-js init and adrenaline dev.Scaffold and launch a new project in seconds:
# 1. Create a new Adrenaline.js project
npm install adrenaline-js
# or scaffold a new project:
npx adrenaline-js init my-app
# 2. Navigate to your project folder
cd my-app
# 3. Install dependencies
npm install
# 4. Launch your desktop app!
npx adrenaline dev
| Feature | Adrenaline.js ⚡ | Electron ⚛️ | Tauri 🦀 |
|---|---|---|---|
| Language / Runtime | Node.js / JavaScript | Node.js / JavaScript | Rust / Web view |
| App Bundle Size | ~5 – 10 MB | ~150 MB+ | ~5 – 10 MB |
| Memory Footprint | Ultra-Low (~30 MB) | High (150 MB+) | Ultra-Low (~30 MB) |
| Backend Language | JavaScript / Node.js | JavaScript / Node.js | Rust |
| Learning Curve | Zero (Electron-like API) | Easy | High (Requires Rust) |
| npm Ecosystem | Full Native Support | Full Native Support | Limited (Requires Rust bridges) |
| Rendering Engine | System Native Webview | Bundled Chromium | System Native Webview |
main.js)const { app, BrowserWindow, ipcMain } = require('adrenaline-js');
const path = require('path');
app.whenReady().then(() => {
const win = new BrowserWindow({
width: 800,
height: 600,
title: 'My Adrenaline App'
});
win.loadFile(path.join(__dirname, 'index.html'));
ipcMain.on('ping', (event, data) => {
console.log('Received ping from renderer:', data);
win.webContents.send('pong', { reply: 'Pong from Node.js!' });
});
});
index.html)<!DOCTYPE html>
<html>
<head>
<title>My Adrenaline App</title>
</head>
<body>
<h1>Hello Adrenaline.js!</h1>
<button onclick="sendPing()">Ping Main Process</button>
<script>
function sendPing() {
window.adrenaline.send('ping', { time: Date.now() });
}
window.adrenaline.on('pong', (data) => {
alert(data.reply);
});
</script>
</body>
</html>
Adrenaline comes with a fast CLI tool for development:
adrenaline init <project-name> / adrenaline create <project-name>: Scaffold a modern starter project.adrenaline dev / adrenaline start: Run the desktop app in current directory.adrenaline --version / -v: Display CLI version.adrenaline --help / -h: Display help options.This project is licensed under the MIT License.
JavaScript
52.1%
C++
31.3%
HTML
13.0%
Python
3.6%