Run JavaScript in native apps. Everywhere.
QuickJS plus a clean adapter pattern plus a build tool you understand. Wire it to any C, C++, or Rust library — and write all your application logic in JavaScript. Desktop, mobile, web, edge, middleware. Single native binary out.
QuickJS, an adapter pattern, and a build tool.
Not a framework. Not a bridge. A repeatable methodology for connecting JavaScript to any native library, with reference adapters that ship today.
QuickJS engine
Fabrice Bellard's remarkable JavaScript engine, embedded unmodified. Small, fast, MIT-licensed. ES2023-compliant. The engine you've been waiting for.
Adapter pattern
A clean, repeatable way to wire QuickJS to any C, C++, or Rust library. Two or three core files form the substrate. Every adapter follows the same shape.
Build tool
One CLI. nr new scaffolds, nr build emits a single native binary. No framework lock-in, no runtime dependencies.
Cross-platform
Same JavaScript source, every major target. Desktop, mobile, web, edge, middleware. 90%+ shared logic across all platforms.
Small attack surface
You ship exactly the adapters you use. Not 30MB of Electron. Not Node's entire standard library. Native binary scoped to your actual dependencies.
Open ecosystem
Ship reference adapters. Browse the catalog. Write and publish your own. The adapter pattern is the contract; everything else is up to you.
Write JavaScript. Drive native libraries.
Adapters expose native libraries to JavaScript with zero marshalling overhead. Your JS code talks directly to compiled C, C++, or Rust — no IPC, no serialization, no bridge tax.
// example: SQLite adapter, ~10 lines
// hello-world / main.js import { open } from "nr:sqlite"; import { window } from "nr:appgui"; const db = open("./data.db"); db.exec("CREATE TABLE IF NOT EXISTS notes (text TEXT)"); const w = window({ title: "Notes", width: 600 }); w.on("submit", (text) => { db.exec("INSERT INTO notes VALUES (?)", [text]); }); w.show();
Eight platforms. Same source.
Every target ships today. No "coming soon" — the build tool emits native binaries for every platform listed below from a single JavaScript codebase.
Run your first native binary in 15 minutes.
Install the CLI, scaffold a template, and ship a native binary on your machine. No framework, no Electron, no surprises.