Il fondatore di QEMU e FFmpeg ha pubblicato il motore JavaScript QuickJS

Il matematico francese Fabrice Bellard, fondatore dei progetti QEMU e FFmpeg, ha creato anche la formula più veloce per calcolare il numero Pi e ha sviluppato il formato immagini BPG, ha pubblicato il primo rilascio del nuovo motore JavaScript QuickJS. Questo motore si distingue per la sua compattezza e per l'orientamento all'integrazione in altri sistemi. Il codice del progetto è scritto in C e distribuito sotto licenza MIT. È disponibile anche una versione del motore compilata in WebAssembly tramite Emscripten, adatta per l'esecuzione nei browser.

L'implementazione di JavaScript supporta segue la specifica ES2019, inclusi moduli, generatori asincroni e proxy. Supporto opzionale per funzionalità matematiche non standard estensione per JavaScript, come i tipi BigInt e BigFloat, oltre a l'overloading degli operatori. In termini di prestazioni, QuickJS supera nettamente i modelli esistenti, ad esempio, nel test bench-v8 supera il motore
bench-v8 опережает движок XS del 35%, DukTape più di due volte, JerryScript tre volte, mentre MuJS sette volte.

Oltre alla libreria per l'integrazione del motore nelle applicazioni, il progetto offre anche un interprete qjs, che può essere utilizzato per eseguire codice JavaScript dalla riga di comando. Inoltre, è disponibile un compilatore qjsc in grado di generare file eseguibili autonomi, privi di dipendenze esterne.

Caratteristiche principali:

  • Compattezza e facilità di integrazione in altri progetti. Il codice include solo alcuni file in linguaggio C, senza necessità di dipendenze esterne per la compilazione. Un'applicazione minima compilata occupa circa 190 KB;
  • Prestazioni molto elevate e tempi di avvio ridotti. L'esecuzione di 56.000 test di compatibilità con ECMAScript richiede circa 100 secondi su un singolo core di un normale PC desktop. L'inizializzazione del runtime richiede meno di 300 microsecondi;
  • Quasi pieno supporto per la specifica ES2019 e completo supporto per l'applicazione "B", che definisce componenti per la compatibilità con le vecchie applicazioni web;
  • Superamento completo di tutti i test del set ECMAScript Test Suite;
  • Supporto per la compilazione del codice JavaScript in file eseguibili senza dipendenze esterne;
  • Raccoglitore di spazzatura basato sul conteggio dei riferimenti senza esecuzione ciclica della pulizia, che consente di ottenere un comportamento prevedibile e una riduzione del consumo di memoria;
  • Set di estensioni per calcoli matematici in JavaScript;
  • Shell per l'esecuzione di codice nella riga di comando, che supporta l'evidenziazione della sintassi;
  • Compatta libreria standard con interfacce per le librerie C.

Il progetto dispone anche di tre librerie C complementari utilizzate in QuickJS e adatte per uso separato:

  • libregexp — implementazione veloce di espressioni regolari completamente compatibili con la specifica Javascript ES 2019;
  • libunicode — libreria compatta per la gestione dell'Unicode;
  • libbf — implementazione di operazioni in virgola mobile di precisione arbitraria e funzioni trascendenti con arrotondamento esatto.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster