You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No VM. No Bytecode. No packaging. No Garbage Collector. Fully compiled to native binaries.
NectarJS becomes Nerd
Compile JavaScript and NerdLang in native binaries.
What is NerdLang
NerdLang is a substract of JS with some additions, focus on efficiency.
Nerd is a JavaScript native compiler aiming to make JavaScript universal, Nerd is able to compile native apps for Windows, Mac, Linux, iOS, Android, Raspberry, STM32 and more.
Nerd is in active development, join us on Discord if you need more information.
You can also install Linux for Windows and use a linux system on Windows
You need MinGW with POSIX threads
Linux / FreeBSD
Install it with your distro (apt install gcc, yum install gcc, ...).
You can use GCC, CLANG, as well as any derivative of those compilers (arm-gcc ...)
Apple iOS
Install xCode and you are ready.
You can check your installation with npm start njs_test
Usage
Simplest way to use Nerd:
nerd file.js / file.ng
The output file name will be automatically chosen regarding the target. You can specify another output with -o something.out
You can select a preset
nerd file.js --preset [none|speed|size]
You can also run the compiled executable just after compilation using --run:
nerd file.js --run
You can enable the quiet mode with --quiet:
nerd file.js --quiet
Changing the stack size (useful on Windows):
nerd --stack 10000000 flood.js
For more informations about compilation output, use --verbose
For help, use --help
Benchmarks
Need update
Compiled with GCC v10.2.0 on Windows
NodeJS v12.8.1
QuickJS 2020-07-05
Nerd v0.6.104
sort(1e6) [No preset]
- Time:
0.33s
-
0.33s
- Memory:
7.0Mb
-
1.0Mb
- Filesize:
28.6Mb
-
424Kb
sort(1e6) [+Size preset]
- Filesize:
28.6Mb
-
260Kb
sort(1e6) [+Speed preset]
- Time:
0.33s
-
0.20s
matrix(256) [No preset]
- Time:
0.33s
-
0.21s
- Memory:
7.0Mb
-
1.0Mb
- Filesize:
28.6Mb
-
405Kb
matrix(256) [+Size preset]
- Filesize:
28.6Mb
-
251Kb
matrix(1e6) [+Speed preset]
- Time:
0.33s
-
0.11s
Some code can be evaluated compile-time
Supported platforms
Actively tested for
Windows
win-x86-32
win-x86-64
Linux
linux-x86-32
linux-x86-64
linux-arm32v7
Arduino
arduino-nano
arduino-uno
arduino-mega1280
arduino-mega2560
STM32 Nucleo
nucleo-l152re
nucleo-l432kc
nucleo-f446re
Mobile
android
Web
wasm
wast
asm-js
macOS
Sun OS
Development
This project is in heavy development and a lot features are not implemented yet.
ECMAScript Support
Nerd already supports more than 80% of ES3.
Prototype
.call()
.bind()
Array
.length
.push(value)
Class
constructor
methods
static methods
Console
.log(variadic)
JSON
.parse(str)
.stringify(obj)
Math **(DONE)**
[All static methods and constants]
Object
.keys
performance
timeOrigin
.now()
String
.length
.toString()
.indexOf(needle)
.lastIndexOf(needle)
.search(needle)
.slice(start, end)
.substring(start, end)
.substr(start, end)
.replace(needle, str)
Syntax
for
while / do while
if / else if / else
try / catch / finally
function / lambda
class
new
typeof
instanceof
undefined
null
Infinite
NaN / isNaN
true / false
About
🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.