QuickJS - kevyt JavaScript-moottori, jonka on kehittänyt QEMU: n ja FFmpegin perustaja

JavaScript

Ranskalainen matemaatikko Fabrice Bellard, joka perusti QEMU- ja FFmpeg-projektit ja loi myös nopeimman kaavan Pi-luvun laskemiseksi ja kehitti BPG-kuvamuodon.

Fabrice Bellard on tunnetaan parhaiten QEMU: n pääkehittäjänä (emulaattori, joka jäljittelee erilaisia ​​laitteistoarkkitehtuureja) ja Tiny C Compiler (tcc), hyvin pieni, mutta kattava C-kääntäjä, joka on alun perin kirjoitettu voittaakseen "International Obfuscated C Code Contest".

Nyt äskettäin jakoi yleisölle ensimmäisen version uudesta teoksestaan joka on JavaScriptissä ja tämä on uusi moottori nimeltä JavaScript QuickJS.

Tietoja JavaScript QuickJS: stä

QuickJS JavaScript -moottori se on kompakti ja suunniteltu liitettäväksi muihin järjestelmiin. Projektin koodi Se on kirjoitettu C-muodossa ja jaettu MIT-lisenssin alla. Saatavana on myös moottoriversio, joka on koottu WebAssembly-sovellukseen Emscripten-sovelluksella ja sopii käytettäväksi selaimissa.

JavaScript-toteutus tukee ES2019-määritystä, mukaan lukien moduulit, asynkroniset generaattorit ja välityspalvelimet.

QuickJS JavaScript -moottorissa tuetaan valinnaisia ​​epätyypillisiä JavaScript-matemaattisia laajennuksia, kuten BigInt- ja BigFloat-tyypit, sekä käyttäjän ylikuormitus.

Suorituskyvyn perusteella QuickJS ylittää merkittävästi saatavilla olevat analogitEsimerkiksi penkki-v8-testissä XS-moottori on 35% edellä, DukTape yli kaksinkertaistunut, JerryScript kolme kertaa ja MuJS seitsemän kertaa.

Kirjaston lisäksi upottaa moottori sovellukseen, projekti tarjoaa myös qjs-tulkin, jota voidaan käyttää JavaScript-koodin suorittamiseen komentoriviltä.

Lisäksi, qjsc-kääntäjä on käytettävissä ja pystyy tuottamaan suoritettavia tiedostoja, jotka voidaan suorittaa erikseen ja että nämä eivät vaadi ulkoisia riippuvuuksia.

QuickJS JavaScript -moottorin pääominaisuuksista seuraavat kohdat erottuvat:

  • Kompakti ja helppo integroida muihin projekteihin. Koodi sisältää vain muutaman C-tiedoston, joiden rakentaminen ei vaadi ulkoisia riippuvuuksia. Yksinkertainen koottu sovellus vie noin 190 kt
  • Erittäin korkea suorituskyky ja nopeat käynnistysajat. 56 tuhannen ECMAScript-yhteensopivuustestin läpäiseminen kestää noin 100 sekuntia, kun normaalia työpöytää suoritetaan ytimessä. Ajonaikainen alustus kestää alle 300 mikrosekuntia
  • Lähes täysi tuki ES2019-määritykselle ja täysi tuki B-sovellukselle, joka määrittelee komponentit yhteensopivuuteen vanhempien verkkosovellusten kanssa
  • Suorita kaikki ECMAScript Test Suite -testit läpi
  • Tuki Javascript-koodin kääntämiseen suoritettaviksi tiedostoiksi ilman ulkoisia riippuvuuksia
  • Jätteenkerääjä perustuu vertailulaskentaan ilman syklistä puhdistusta, mikä mahdollistaa ennakoitavan käyttäytymisen ja vähentää muistin kulutusta
  • Joukko laajennuksia matemaattisia laskelmia varten JavaScript-kielellä
  • Kuori koodin suorittamiseksi komentorivitilassa, joka tukee kontekstuaalista koodin korostusta
  • Kompakti standardikirjasto C-kirjaston yli

Tämän lisäksi Toisaalta projektissa kehitetään myös kolmea C-kirjastoa QuickJS: ään liittyvät ja henkilökohtaiseen käyttöön soveltuvat lähipiirit

  1. freegexp: pieni ja nopea regex-kirjasto, joka täyttää JavaScript ES2019 -määrityksen
  2. libunicode: pieni Unicode-kirjasto, joka tukee tapausten muuntamista, Unicode-normalisointia, Unicode-komentosarjapyyntöjä, Unicode-luokan kyselyitä ja kaikkia Unicode-binaarisia ominaisuuksia
  3. libbf: Tämä on myös pieni kirjasto, joka toteuttaa IEEE 754: n liukulukuoperaatiot ja transsendenttiset toiminnot tarkalla pyöristyksellä. Se pidetään erillisenä projektina.

Kuinka hankkia SavaScript QuickJS?

Lähdekoodin voi ladata kääntämistä varten osoitteesta seuraava linkki. Asennuksen jälkeen toimitetaan Makefile, joka kääntää moottorin Linux- tai Mac OS / X -käyttöjärjestelmään.

Samasta linkistä voit tutustua QuickJS-dokumentaatioon Lisätietoja. Se tarjoaa myös vertailutietoja, jotka osoittavat QuickJS-suorituskyvyn Googlen V8-moottorilla, sekä vertailun sen ja muiden saman luokan työkalujen välillä.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.