Skip to content
/ nectarjs Public
forked from NerdLang/nerd

🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.

License

Notifications You must be signed in to change notification settings

34r7h/nectarjs

 
 

Repository files navigation


Javascript's God Mode : one language to rule them all. Code everything, everywhere, for everything, in JavaScript.

No VM. No Bytecode. No Garbage Collector. Full Compiled and Native binaries.

Any questions or ideas, join us : NectarJS' Discord Trello


NPM

Full documentation is here (WIP) : NectarJS Doc

Main objectives

  • Supporting EcmaScript standard
  • Supporting NodeJS and NPM ecosystem
  • Supporting a maximum of platforms (Windows, Mac, Linux, Android, Arduino, ...)

Install

npm install -g nectarjs

Starting with compilation

The simplest way to use NectarJS is :

nectar file.js

The output file name will be automatically chosen regarding the target. You can specify another output with -o something.out

To show more compilation infos :

nectar --verbose file.js

For more informations about compilation output, use --verbose

For help, use --help

Using native compiler

  • You need to have GCC installed on your machine and registered in your path to compile.

You can install Mingw for Windows here : https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

On linux, you can install it with your distro (apt install gcc, yum install gcc, ...)

nectar -b native file.js
or
nectar file.js

You can select a preset (speed or size):

nectar file.js --preset [speed|size]

You can also run the compiled executable just after compilation using --run:

nectar file.js --run

You can enable the quiet mode with --quiet:

nectar file.js --quiet

Using compiler environments

NectarJS supports various compilation env:

  • std
  • node
  • arduino
  • wasm
  • android

To compile a file using an env, you can use the --env switch :

nectar arduino-led.js --env arduino --target mega2560

Android compilation

First step, you have to install Android SDK and Android NDK.

Second step, you need to setup NectarJS with the paths of the SDK and the NDK :

nectar --setsdk path_to_sdk --setndk path_to_ndk

You can show your configuration with: nectar --config

Third step: compile your JS app for Android using :

nectar file.js --env android

The result file is an Android APK.

You can select your target with --target release|debug.

Need: SDK Android-19 and Android-28 NDK: tested with NDK 21

Compatibility targets/platforms :

  • All supported GCC platforms

  • All supported Clang platforms

  • All supported AVR-GCC platforms

Actively tested for :

  • android

  • wasm

  • asm-js

  • wast

  • mac-osx

  • linux-x86-32

  • linux-x86-64

  • linux-arm32v7

  • win-x86-32

  • win-x86-64

  • arduino-nano

  • arduino-uno

  • arduino-mega1280

  • arduino-mega2560

  • nucleo-l152re

  • nucleo-l432kc

String

  • .length
  • .toString()
  • .indexOf(needle)
  • .lastIndexOf(needle)
  • .search(needle)
  • .slice(start, end)
  • .substring(start, end)
  • .substr(start, end)
  • .replace(needle, str)

About

🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 75.6%
  • JavaScript 19.0%
  • C 4.4%
  • Other 1.0%