JavaScript features / ES 6

low.js is based on the JavaScript engine DukTape, which supports ES 5.1. You can still program for low.js in ES 6, by using TypeScript or Babel which transpiles your code from ES 6 to ES 5.1. This is done automatically when you program for low.js for ESP32 or the neonious one: Both the neonious one on-board IDE and the synchronization program lowrmt transpile on-the-fly.

When transpiling from ES 6 to ES 5.1, there is no need to add polyfills for things such as Promises (for async/await) or Maps and Sets. These are already included in low.js.

Node.JS API

Currently only 60 % of the Node.JS API is implemented, the other 40 % are still to be done. Still, the currently implemented API already makes low.js for ESP32 / neonious very powerful already.

The Node.JS API is documented at: https://nodejs.org/api/

Only non-depreciated, non-experimental APIs of Node.JS will be implemented. Modules / Node.JS documentation pages with depreciated and experimental only APIs are not listed:

Module / Node.JS
documentation page
low.js low.js for ESP32 / neonious one
assert
Buffer might not be 100% compatible yet
child_process not implemented yet user code runs exclusivly on machine, no processes exists anyhow
cluster not implemented yet only one core available for user anyways, other core does file, TLS, Wifi and more
console
crypto currently implemented: crypto.createHash / crypto.createHmac, resulting object supports update and digest
Debugger not implemented, very V8 specific a great WYSIWYG debugger is implemented in the on-board browser IDE of neonious one
dns
Error
fs currently implemented: fs.createReadStream, fs.createWriteStream, fs.open, fs.write, fs.read, fs.close, fs.fstat, fs.rename, fs.unlink, fs.readFile, fs.writeFile / and all corresponding sync functions
Globals currently not implemented: URL, URLSearchParams. For process global, see process below
http not implemented yet: upgrade for clients, information, checkContinue, checkExpectation, writeContinue, writeProcessing
https currently implemented for server side only, only supports one cert, key, ca, all in PEM format
Internalization
Modules custom search paths are not followed yet.
in low.js, but not yet available on neonious one: support for node_modules
net
os
path
process
querystring
readline currently no way with neonious one to give data to process.stdin
repl
stream
string_decoder supports only utf8
Timers
tls currently implemented for server side only, only supports one cert, key, ca, all in PEM format
tty no way to open terminal on neonious one yet
dgram
url only supports "old style" urlObjects. Currently not implemented: URL, URLSearchParams
util might not be 100% compatible yet
vm not implemented yet: timeout, breakOnSigint
worker not implemented yet only one core available for user anyways, other core does file, TLS, Wifi and more
zlib not implemented yet

low.js for ESP32 Peripherials API

If running on the ESP32, several modules are available to access the available peripherials.

You can access them in your code via require(...).