M5Devs/adrenaline

⚡ 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

See the code

See what people are saying

README

Adrenaline.js

Ship only what you use. Eliminate everything else. The ultra-lightweight Electron alternative.

License: MIT Node.js

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.


⚡ Key Features

  • Tiny Bundle & Footprint (5-10 MB vs 150 MB+): Native system webviews remove Chromium bloat, drastically reducing application installer size and RAM usage.
  • Zero Rust / Go Barrier: Written 100% for Node.js & JavaScript developers. Use your favorite npm packages without learning a new language or toolchain.
  • Drop-in Electron-like API: Work with familiar APIs like app, BrowserWindow, and ipcMain out of the box with zero learning curve.
  • Bidirectional IPC: High-speed asynchronous inter-process communication between Node.js backend processes and webview frontends.
  • Built-in CLI & Scaffolder: Instant project scaffolding and execution with npx adrenaline-js init and adrenaline dev.

🚀 Quickstart Guide

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

📊 Comparison: Adrenaline vs Electron vs Tauri

FeatureAdrenaline.js ⚡Electron ⚛️Tauri 🦀
Language / RuntimeNode.js / JavaScriptNode.js / JavaScriptRust / Web view
App Bundle Size~5 – 10 MB~150 MB+~5 – 10 MB
Memory FootprintUltra-Low (~30 MB)High (150 MB+)Ultra-Low (~30 MB)
Backend LanguageJavaScript / Node.jsJavaScript / Node.jsRust
Learning CurveZero (Electron-like API)EasyHigh (Requires Rust)
npm EcosystemFull Native SupportFull Native SupportLimited (Requires Rust bridges)
Rendering EngineSystem Native WebviewBundled ChromiumSystem Native Webview

💻 Code Example

Main Process (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!' });
    });
});

Renderer Process (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>

🛠️ CLI Commands

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.

📄 License

This project is licensed under the MIT License.

cpp
cross-platform
desktop-app
desktop-framework
electron
electron-alternative
high-performance
javascript
lightweight
n-api
nodejs
webview

M5Devs/adrenaline

⚡ 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

See the code

See what people are saying

README

Adrenaline.js

Ship only what you use. Eliminate everything else. The ultra-lightweight Electron alternative.

License: MIT Node.js

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.


⚡ Key Features

  • Tiny Bundle & Footprint (5-10 MB vs 150 MB+): Native system webviews remove Chromium bloat, drastically reducing application installer size and RAM usage.
  • Zero Rust / Go Barrier: Written 100% for Node.js & JavaScript developers. Use your favorite npm packages without learning a new language or toolchain.
  • Drop-in Electron-like API: Work with familiar APIs like app, BrowserWindow, and ipcMain out of the box with zero learning curve.
  • Bidirectional IPC: High-speed asynchronous inter-process communication between Node.js backend processes and webview frontends.
  • Built-in CLI & Scaffolder: Instant project scaffolding and execution with npx adrenaline-js init and adrenaline dev.

🚀 Quickstart Guide

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

📊 Comparison: Adrenaline vs Electron vs Tauri

FeatureAdrenaline.js ⚡Electron ⚛️Tauri 🦀
Language / RuntimeNode.js / JavaScriptNode.js / JavaScriptRust / Web view
App Bundle Size~5 – 10 MB~150 MB+~5 – 10 MB
Memory FootprintUltra-Low (~30 MB)High (150 MB+)Ultra-Low (~30 MB)
Backend LanguageJavaScript / Node.jsJavaScript / Node.jsRust
Learning CurveZero (Electron-like API)EasyHigh (Requires Rust)
npm EcosystemFull Native SupportFull Native SupportLimited (Requires Rust bridges)
Rendering EngineSystem Native WebviewBundled ChromiumSystem Native Webview

💻 Code Example

Main Process (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!' });
    });
});

Renderer Process (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>

🛠️ CLI Commands

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.

📄 License

This project is licensed under the MIT License.

cpp
cross-platform
desktop-app
desktop-framework
electron
electron-alternative
high-performance
javascript
lightweight
n-api
nodejs
webview

Languages

JavaScript

52.1%

C++

31.3%

HTML

13.0%

Python

3.6%