QuickJS: un motore JavaScript leggero sviluppato dal fondatore di QEMU e FFmpeg

JavaScript

Matematico francese Fabrice Bellard, che ha fondato i progetti QEMU e FFmpeg e che ha anche creato la formula più veloce per il calcolo del numero Pi e ha sviluppato il formato immagine BPG.

Fabrice Bellard lo è meglio conosciuto come lo sviluppatore principale di QEMU (un emulatore che emula varie architetture hardware) e Tiny C Compiler (tcc), un compilatore C molto piccolo ma completo, originariamente scritto per vincere l '"International Obfuscated C Code Contest".

Adesso di recente ha condiviso al pubblico la prima versione del suo nuovo lavoro che è in JavaScript e questo è un nuovo motore chiamato JavaScript QuickJS.

Informazioni su JavaScript QuickJS

Il motore JavaScript di QuickJS è compatto e progettato per essere incorporato in altri sistemi. Il codice del progetto È scritto in C e distribuito con licenza MIT. È inoltre disponibile una build del motore compilata in WebAssembly utilizzando Emscripten e adatta per l'esecuzione nei browser.

L'implementazione di JavaScript supporta la specifica ES2019, inclusi moduli, generatori asincroni e proxy.

Nel motore JavaScript di QuickJS sono supportate estensioni matematiche non standard opzionali per JavaScript, come i tipi BigInt e BigFloat, nonché il sovraccarico dell'operatore.

In termini di prestazioni, QuickJS supera in modo significativo gli analoghi disponibiliAd esempio, nel test da banco V8, il motore XS è in vantaggio del 35%, DukTape più che raddoppiato, JerryScript tre volte e MuJS sette volte.

Oltre alla libreria per incorporare il motore nell'applicazione, il progetto offre anche l'interprete qjs, che può essere utilizzato per eseguire codice JavaScript dalla riga di comando.

Inoltre, il compilatore qjsc è disponibile e in grado di emettere file eseguibili che possono essere eseguiti separatamente e che questi non richiedono dipendenze esterne.

Delle caratteristiche principali del motore JavaScript QuickJS spiccano i seguenti punti:

  • Compatto e facile da integrare in altri progetti. Il codice include solo pochi file C che non richiedono la creazione di dipendenze esterne. Una semplice applicazione compilata richiede circa 190 Kb
  • Prestazioni molto elevate e tempi di avvio rapidi. Il superamento di 56 mila test di compatibilità ECMAScript richiede circa 100 secondi quando si esegue un normale desktop su un kernel. L'inizializzazione del runtime richiede meno di 300 microsecondi
  • Supporto quasi completo per la specifica ES2019 e supporto completo per l'applicazione "B", che definisce i componenti per la compatibilità con le applicazioni web meno recenti
  • Completa il passaggio di tutti i test di ECMAScript Test Suite
  • Supporto per la compilazione di codice Javascript in file eseguibili senza dipendenze esterne
  • Il Garbage Collector si basa sul conteggio dei riferimenti senza pulizia ciclica, consentendo un comportamento prevedibile e un consumo di memoria ridotto
  • Un insieme di estensioni per calcoli matematici nel linguaggio JavaScript
  • Una shell per eseguire codice in modalità riga di comando, che supporta l'evidenziazione del codice contestuale
  • Libreria standard compatta su libreria C.

Oltre a questo, D'altra parte, il progetto sta sviluppando anche tre librerie C. parti correlate coinvolte in QuickJS e adatte all'uso individuale:

  1. freegeexp: una piccola e veloce libreria di espressioni regolari conforme alla specifica JavaScript ES2019
  2. libunicode: una piccola libreria Unicode che supporta la conversione di maiuscole e minuscole, la normalizzazione Unicode, le richieste di script Unicode, le query di categoria generale Unicode e tutte le proprietà binarie Unicode
  3. libbf: Questa è anche una piccola libreria che implementa operazioni in virgola mobile IEEE 754 e funzioni trascendentali con arrotondamento esatto. È mantenuto come progetto separato.

Come ottenere SavaScript QuickJS?

È possibile scaricare il codice sorgente per la compilazione da il seguente collegamento. Dopo l'installazione, viene fornito un Makefile per compilare il motore su Linux o Mac OS / X.

Nello stesso link puoi consultare la documentazione di QuickJS per maggiori informazioni. Fornisce inoltre informazioni di benchmark che mostrano le prestazioni di QuickJS con il motore V8 di Google e un confronto tra esso e altri strumenti della stessa categoria.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.