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

JavaScript

Ahli matematik Perancis Fabrice Bellard, yang mengasaskan projek QEMU dan FFmpeg dan yang juga membuat formula terpantas untuk mengira nombor Pi dan mengembangkan format gambar BPG.

Fabrice Bellard adalah paling terkenal sebagai pemaju utama QEMU (emulator yang meniru pelbagai seni bina perkakasan) dan Tiny C Compiler (tcc), penyusun C yang sangat kecil tetapi komprehensif, yang pada asalnya ditulis untuk memenangi "Peraduan Kod C Gelap Antarabangsa".

Sekarang baru-baru ini berkongsi kepada umum versi pertama karya barunya yang ada dalam JavaScript dan ini enjin baru yang dipanggil JavaScript QuickJS.

Mengenai JavaScript QuickJS

Enjin JavaScript QuickJS ia ringkas dan direka untuk dimasukkan ke dalam sistem lain. Kod projek Ia ditulis dalam C dan diedarkan di bawah lesen MIT. Juga tersedia adalah mesin yang disusun ke dalam WebAssembly menggunakan Emscripten dan sesuai untuk berjalan di penyemak imbas.

Pelaksanaan JavaScript menyokong spesifikasi ES2019, termasuk modul, penjana tak segerak, dan proksi.

Dalam mesin JavaScript QuickJS sambungan matematik pilihan tidak standard untuk JavaScript disokong, seperti jenis BigInt dan BigFloat, serta beban operator yang berlebihan.

Berdasarkan prestasi, QuickJS mengatasi analog yang tersedia dengan ketaraSebagai contoh, dalam ujian bench-v8, enjin XS berada di hadapan 35%, DukTape lebih dari dua kali ganda, JerryScript tiga kali dan MuJS tujuh kali.

Selain perpustakaan untuk memasukkan mesin dalam aplikasi, projek ini juga menawarkan jurubahasa qjs, yang boleh digunakan untuk menjalankan kod JavaScript dari baris perintah.

Selain itu, penyusun qjsc tersedia dan mampu mengeluarkan fail yang boleh dilaksanakan yang boleh dijalankan secara berasingan dan bahawa ini tidak memerlukan kebergantungan luaran.

Antara ciri utama mesin JavaScript QuickJS perkara berikut menonjol:

  • Ringkas dan senang digabungkan ke dalam projek lain. Kod ini merangkumi hanya beberapa fail C yang tidak memerlukan pergantungan luaran untuk dibina. Aplikasi yang disusun ringkas memerlukan kira-kira 190 Kb
  • Prestasi yang sangat tinggi dan masa permulaan yang pantas. Melepasi 56 ribu ujian keserasian ECMAS mengambil masa kira-kira 100 saat ketika menjalankan desktop biasa pada kernel. Permulaan masa berjalan mengambil masa kurang dari 300 mikrodetik
  • Sokongan hampir penuh untuk spesifikasi ES2019 dan sokongan penuh untuk aplikasi "B", yang menentukan komponen untuk keserasian dengan aplikasi web yang lebih lama
  • Lengkapkan petikan semua ujian ECMAScript Test Suite
  • Sokongan untuk menyusun kod Javascript ke dalam fail yang boleh dilaksanakan tanpa pergantungan luaran
  • Pengutip sampah bergantung pada penghitungan rujukan tanpa melakukan pembersihan kitaran, memungkinkan untuk melakukan tingkah laku yang dapat diramalkan dan mengurangkan penggunaan memori
  • Satu set peluasan untuk pengiraan matematik dalam bahasa JavaScript
  • Shell untuk melaksanakan kod dalam mod baris perintah, yang menyokong penyorotan kod kontekstual
  • Perpustakaan standard padat berbanding perpustakaan C.

Selain itu, Sebaliknya, projek ini juga membangunkan tiga perpustakaan C pihak berkaitan yang terlibat dalam QuickJS dan sesuai untuk kegunaan individu:

  1. freegexp: perpustakaan regex kecil dan pantas yang mematuhi spesifikasi JavaScript ES2019
  2. libunicode: perpustakaan Unicode kecil yang menyokong penukaran kes, normalisasi Unicode, permintaan skrip Unicode, pertanyaan kategori umum Unicode, dan semua sifat binari Unicode
  3. libbf: Ini juga perpustakaan kecil yang melaksanakan operasi titik terapung IEEE 754 dan fungsi transendental dengan pembundaran tepat. Ia disimpan sebagai projek yang berasingan.

Bagaimana cara mendapatkan SavaScript QuickJS?

Memuat turun kod sumber untuk penyusunan boleh dilakukan dari pautan berikut. Selepas pemasangan, Makefile disediakan untuk menyusun enjin pada Linux atau Mac OS / X.

Dalam pautan yang sama anda boleh melihat dokumentasi QuickJS untuk maklumat lanjut. Ia juga memberikan maklumat penanda aras yang menunjukkan prestasi QuickJS dengan enjin V8 Google dan perbandingan antara ia dan alat lain dalam kategori yang sama.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.