QuickJS - mesin JavaScript ringan yang dikembangkan oleh pendiri QEMU dan FFmpeg

JavaScript

Matematikawan Prancis Fabrice Bellard, yang mendirikan proyek QEMU dan FFmpeg dan yang juga menciptakan rumus tercepat untuk menghitung nomor Pi dan mengembangkan format gambar BPG.

Fabrice Bellard adalah paling dikenal sebagai pengembang utama QEMU (emulator yang mengemulasi berbagai arsitektur perangkat keras) dan Tiny C Compiler (tcc), kompiler C yang sangat kecil namun komprehensif, aslinya ditulis untuk memenangkan “Kontes Kode C C yang Disamarkan Internasional”.

Sekarang baru-baru ini membagikan kepada publik versi pertama dari karya barunya yang ada di JavaScript dan ini mesin baru yang disebut JavaScript QuickJS.

Tentang JavaScript QuickJS

Mesin JavaScript QuickJS itu kompak dan dirancang untuk dimasukkan ke dalam sistem lain. Kode proyek Itu ditulis dalam C dan didistribusikan di bawah lisensi MIT. Juga tersedia engine build yang dikompilasi ke dalam WebAssembly menggunakan Emscripten dan cocok untuk dijalankan di browser.

Implementasi JavaScript mendukung spesifikasi ES2019, termasuk modul, generator asinkron, dan proxy.

Di mesin JavaScript QuickJS ekstensi matematika non-standar opsional untuk JavaScript didukung, seperti tipe BigInt dan BigFloat, serta kelebihan beban operator.

Berdasarkan kinerja, QuickJS secara signifikan mengungguli analog yang tersediaMisalnya, dalam pengujian bench-v8, mesin XS 35% di depan, DukTape lebih dari dua kali lipat, JerryScript tiga kali dan MuJS tujuh kali.

Selain perpustakaan untuk menyematkan mesin dalam aplikasi, proyek ini juga menawarkan penerjemah qjs, yang dapat digunakan untuk menjalankan kode JavaScript dari baris perintah.

Selain itu, kompilator qjsc tersedia dan mampu menghasilkan file yang dapat dieksekusi yang dapat dijalankan secara terpisah dan ini tidak memerlukan ketergantungan eksternal.

Fitur utama dari mesin JavaScript QuickJS poin-poin berikut menonjol:

  • Ringkas dan mudah diintegrasikan ke dalam proyek lain. Kode hanya mencakup beberapa file C yang tidak memerlukan dependensi eksternal untuk membuatnya. Aplikasi terkompilasi sederhana membutuhkan waktu sekitar 190 Kb
  • Performa sangat tinggi dan waktu startup yang cepat. Melewati 56 ribu tes kompatibilitas ECMAScript membutuhkan waktu sekitar 100 detik saat menjalankan desktop normal pada kernel. Inisialisasi waktu proses membutuhkan waktu kurang dari 300 mikrodetik
  • Dukungan hampir penuh untuk spesifikasi ES2019 dan dukungan penuh untuk aplikasi "B", yang menentukan komponen untuk kompatibilitas dengan aplikasi web yang lebih lama
  • Selesaikan bagian dari semua tes ECMAScript Test Suite
  • Dukungan untuk mengompilasi kode Javascript menjadi file yang dapat dieksekusi tanpa ketergantungan eksternal
  • Pengumpul sampah mengandalkan penghitungan referensi tanpa pembersihan siklus, memungkinkan perilaku yang dapat diprediksi dan konsumsi memori yang berkurang
  • Sekumpulan ekstensi untuk penghitungan matematika dalam bahasa JavaScript
  • Shell untuk menjalankan kode dalam mode baris perintah, yang mendukung penyorotan kode kontekstual
  • Pustaka standar yang ringkas di atas pustaka C.

Selain itu, Di sisi lain, proyek ini juga mengembangkan tiga perpustakaan C. pihak terkait yang terlibat dalam QuickJS dan cocok untuk penggunaan individu:

  1. gratisgexp: perpustakaan regex kecil dan cepat yang sesuai dengan spesifikasi JavaScript ES2019
  2. kode libuni: pustaka Unicode kecil yang mendukung konversi kasus, normalisasi Unicode, permintaan skrip Unicode, kueri kategori umum Unicode, dan semua properti biner Unicode
  3. libbf: Ini juga merupakan pustaka kecil yang mengimplementasikan operasi floating point IEEE 754 dan fungsi transendental dengan pembulatan yang tepat. Itu disimpan sebagai proyek terpisah.

Bagaimana cara mendapatkan SavaScript QuickJS?

Mengunduh kode sumber untuk kompilasi dapat dilakukan dari link berikut. Setelah instalasi, Makefile disediakan untuk mengkompilasi mesin di Linux atau Mac OS / X.

Di tautan yang sama Anda dapat melihat dokumentasi QuickJS untuk informasi lebih lanjut. Ini juga memberikan informasi benchmark yang menunjukkan kinerja QuickJS dengan mesin V8 Google dan perbandingan antara itu dan alat lain dalam kategori yang sama.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.