Compile a JavaScript file into a small native binary instead of shipping a JS engine
Target embedded boards like Arduino or STM32 from JavaScript code
Build the same JavaScript program for Windows, Mac, Linux, iOS, and Android
Compile with a size preset to shrink the output file for constrained devices
| nerdlang/nerd | odriverobotics/odrive | raboof/nethogs | |
|---|---|---|---|
| Stars | 3,616 | 3,614 | 3,620 |
| Language | C++ | C++ | C++ |
| Setup difficulty | moderate | hard | easy |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires installing a platform specific C compiler like GCC or Clang before compiling anything.
Nerd is a compiler that turns JavaScript into native binaries you can run directly on a computer or device, without a JavaScript engine, a virtual machine, bytecode, or a garbage collector sitting underneath it at runtime. The project was previously called NectarJS. Alongside plain JavaScript, it also accepts a related language called NerdLang, which adds a few extra features aimed at efficiency. The compiler can target a wide range of platforms from one codebase, including Windows, Mac, Linux, iOS, Android, Raspberry Pi boards, Arduino boards, STM32 microcontrollers, and WebAssembly. Stated long-term goals include supporting the ECMAScript 3 standard fully and later versions after that, supporting the Node.js and npm ecosystem, working on as many platforms as possible, including built-in debugging tools, and eventually compiling other languages that can be converted into JavaScript first, such as Ruby through the Opal transpiler or Python through Brython. To use it, you install a C compiler such as GCC or Clang for your platform, then run the nerd command against a .js or .ng file. Command line options let you choose an output file name, pick a preset that favors either speed or smaller file size, run the compiled program immediately after building it, adjust the stack size, or print more detailed compilation output. The README states the project is under heavy active development and lists roughly 80 percent coverage of the ES3 JavaScript standard so far, with support broken down by feature: parts of Array, Class, JSON, Math, Object, String, and core control flow syntax like loops, conditionals, and try/catch. Some listed features, such as full prototype support, are only partially implemented. A Discord server and a public roadmap board are linked for anyone who wants more detail or wants to follow progress.
A compiler that turns JavaScript into native binaries for many platforms, running without a virtual machine, bytecode, or garbage collector.
Mainly C++. The stack also includes C++, JavaScript, GCC.
No license terms are stated in the explanation provided.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.