Dostupno je novo izdanje elk 2.0.9 JavaScript motora, koje ima za cilj upotrebu na sistemima sa ograničenim resursima kao što su mikrokontroleri, uključujući ESP32 i Arduino Nano ploče sa 2KB RAM-a i 30KB Flash. Za rad sa obezbeđenom virtuelnom mašinom dovoljno je 100 bajtova memorije i 20 KB prostora za skladištenje. Projektni kod je napisan u jeziku C i distribuira se pod GPLv2 licencom. Za izgradnju projekta dovoljan je C kompajler - ne koriste se dodatne zavisnosti. Projekat razvijaju programeri operativnog sistema za IoT uređaje Mongoose OS, mJS JavaScript engine i ugrađeni Mongoose web server (koristi se u proizvodima kompanija kao što su Siemens, Schneider Electric, Broadcom, Bosch, Google, Samsung i Qualcomm ).
Glavna svrha Elk-a je kreiranje firmvera za mikrokontrolere u JavaScript-u koji obavljaju različite zadatke automatizacije. Motor je takođe pogodan za ugrađivanje JavaScript rukovalaca u C/C++ aplikacije. Da biste koristili motor u svom kodu, samo postavite datoteku elk.c u izvorno stablo, uključite datoteku zaglavlja elk.h i koristite poziv js_eval. Dozvoljeno je pozivanje funkcija definiranih u C/C++ kodu iz JavaScript skripti, i obrnuto. JavaScript kod se izvršava u zaštićenom okruženju izolovanom od glavnog koda koristeći interpreter koji ne generiše bajt kod i ne koristi dinamičku alokaciju memorije.
Elk implementira mali podskup specifikacije Ecmascript 6, ali dovoljan za kreiranje radnih skripti. Konkretno, podržava osnovni skup operatora i tipova, ali ne podržava nizove, prototipove, izraze this, new i delete. Predlaže se korištenje let umjesto var i const, a while umjesto do, switch i for. Nije obezbeđena standardna biblioteka, tj. ne postoje takvi objekti Datum, Regexp, Function, String i Number.
izvor: opennet.ru