Francoski matematik Fabrice Bellard, ustanovitelj projektov QEMU in FFmpeg ter avtor najhitrejše formule za izračun števila Pi, je razvil format slik BPG. , objavil je prvo izdajo novega JavaScript motorja . Motor je kompakten in družbeno usmerjen za vključenost v druge sisteme. Koda projekta je napisana v C in je licencirana pod MIT licenci. Na voljo je tudi različica motorja, ki je prevedena v WebAssembly s pomočjo Emscripten in je primerna za izvajanje v brskalnikih.
Implementacija JavaScript specifikacije ES2019, vključno z moduli, asinhronimi generatorji in proxy. Opcijsko se podpirajo nestandardne matematične funkcije za JavaScript, kot so tipi BigInt in BigFloat, ter . Po zmogljivosti QuickJS bistveno obstoječe alternative, na primer, v testu
bench-v8 prehiteva motor za 35%, več kot dvakrat, trikrat, in sedemkrat.
Poleg knjižnice za vgradnjo motorja v aplikacije projekt ponuja tudi interpreter qjs, ki ga lahko uporabite za izvajanje JavaScript kode iz ukazne vrstice. Poleg tega je na voljo prevajalnik qjsc, ki lahko generira samostojne izvršljive datoteke, ki ne zahtevajo zunanjih odvisnosti.
Ključne karakteristike:
- Kompaktna zasnova in enostavna vgradnja v druge projekte. Koda vključuje le nekaj datotek v C, ki ne zahtevajo zunanjih odvisnosti za sestavljanje. Najenostavnejša sestavljena aplikacija zavzema približno 190 Kb;
- Zelo visoka učinkovitost in kratki časi zagon. Prehod 56 tisoč testov združljivosti z ECMAScript traja približno 100 sekund pri izvajanju na eni jedru običajnega namiznega računalnika. Inicializacija okolja traja manj kot 300 mikrosekund;
- Skoraj popolna podpora specifikaciji ES2019 in popolna podpora aplikacije 'B', ki opredeljuje komponente za združljivost s starimi spletnimi aplikacijami;
- Popolno prehajanje vseh testov iz seta ECMAScript Test Suite;
- Podpora za prevajanje kode JavaScript v izvršljive datoteke brez zunanjih odvisnosti;
- Garbage collector na osnovi štetja referenc brez cikličnega izvajanja čiščenja, kar je omogočilo predvidljivo vedenje in zmanjšanje porabe pomnilnika;
- Nabor razširitev za matematične izračune v jeziku JavaScript;
- Orodje za izvajanje kode v ukazni vrstici, ki podpira sintaktično barvanje;
- Kompaktna standardna knjižnica z ovitki nad C-knjižnico.
Projekt razvija tudi tri spremljevalne C-knjižnice, uporabljene v QuickJS in primerne za ločeno uporabo:
- libregexp — hitra implementacija regularnih izrazov, popolnoma skladnih s specifikacijo Javascript ES 2019;
- libunicode — kompaktna knjižnica za delo z Unicode;
- libbf — implementacija operacij s plavajočo vejico poljubne natančnosti in transcenentalnih funkcij z natančnim zaokroževanjem.
Izvor: opennet.ru
