QuickJS - QEMU ve FFmpeg'in kurucusu tarafından geliştirilen hafif bir JavaScript motoru

JavaScript

Fransız matematikçi Fabrice BellardQEMU ve FFmpeg projelerini kuran ve aynı zamanda Pi sayısını hesaplamak için en hızlı formülü oluşturan ve BPG görüntü formatını geliştiren.

Fabrice Bellard en çok QEMU'nun lider geliştiricisi olarak bilinir (çeşitli donanım mimarilerini taklit eden bir emülatör) ve çok küçük ama kapsamlı bir C derleyicisi olan Tiny C Compiler (tcc), orijinal olarak "Uluslararası Gizlenmiş C Kodu Yarışması" nı kazanmak için yazılmıştır.

Şimdi yakın zamanda yeni çalışmasının ilk versiyonunu kamuoyuyla paylaştı JavaScript'te olan ve bu JavaScript QuickJS adlı yeni bir motor.

JavaScript QuickJS hakkında

QuickJS JavaScript motoru kompakttır ve diğer sistemlere dahil edilmek üzere tasarlanmıştır. Proje kodu C ile yazılır ve MIT lisansı altında dağıtılır. Ayrıca, Emscripten kullanılarak WebAssembly içinde derlenmiş ve tarayıcılarda çalıştırmaya uygun bir motor yapısı da mevcuttur.

JavaScript uygulaması modüller, asenkron jeneratörler ve proxy'ler dahil olmak üzere ES2019 spesifikasyonunu destekler.

QuickJS JavaScript motorunda JavaScript için isteğe bağlı standart olmayan matematik uzantıları desteklenmektedirBigInt ve BigFloat türleri gibi operatörün aşırı yüklenmesi gibi.

QuickJS, performans açısından mevcut analoglardan önemli ölçüde üstündürÖrneğin, bench-v8 testinde XS motoru% 35 önde, DukTape iki katından fazla, JerryScript üç kez ve MuJS yedi kez.

Motoru uygulamaya yerleştirmek için kitaplığa ek olarak, proje ayrıca qjs tercümanı sunar, komut satırından JavaScript kodunu çalıştırmak için kullanılabilir.

Buna ek olarak, qjsc derleyicisi mevcuttur ve ayrı olarak çalıştırılabilen yürütülebilir dosyalar çıkarabilir ve bunların harici bağımlılıklar gerektirmediğini.

QuickJS JavaScript motorunun ana özelliklerinden şu noktalar öne çıkıyor:

  • Kompakt ve diğer projelere entegre edilmesi kolay. Kod, yalnızca oluşturmak için harici bağımlılıklar gerektirmeyen birkaç C dosyası içerir. Basit bir derlenmiş uygulama yaklaşık 190 Kb alır
  • Çok yüksek performans ve hızlı başlangıç ​​süreleri. Çekirdekte normal bir masaüstü çalıştırırken 56 bin ECMAScript uyumluluk testini geçmek yaklaşık 100 saniye sürüyor. Çalışma zamanı başlatma 300 mikrosaniyeden az sürer
  • ES2019 spesifikasyonu için neredeyse tam destek ve eski web uygulamalarıyla uyumluluk için bileşenleri tanımlayan "B" uygulaması için tam destek
  • ECMAScript Test Suite'in tüm testlerinin geçişini tamamlayın
  • Javascript kodunu harici bağımlılıklar olmadan yürütülebilir dosyalar halinde derleme desteği
  • Çöp toplayıcı, döngüsel temizleme olmadan referans saymaya dayanır, öngörülebilir davranışa ve azaltılmış bellek tüketimine izin verir
  • JavaScript dilinde matematiksel hesaplamalar için bir dizi uzantı
  • Bağlamsal kod vurgulamayı destekleyen, komut satırı modunda kod yürütmek için bir kabuk
  • C kitaplığı üzerinden kompakt standart kitaplık

Buna ek olarak, Öte yandan, proje ayrıca üç C kütüphanesi geliştiriyor QuickJS'de yer alan ve bireysel kullanıma uygun ilgili taraflar:

  1. ücretsiz ifade: JavaScript ES2019 spesifikasyonuyla uyumlu küçük ve hızlı bir normal ifade kitaplığı
  2. libunukod: büyük / küçük harf dönüştürmeyi, Unicode normalleştirmeyi, Unicode komut dosyası isteklerini, Unicode genel kategori sorgularını ve tüm Unicode ikili özelliklerini destekleyen küçük bir Unicode kitaplığı
  3. libf: Bu aynı zamanda IEEE 754 kayan nokta işlemlerini ve aşkın işlevleri tam yuvarlama ile uygulayan küçük bir kitaplıktır. Ayrı bir proje olarak tutulur.

SavaScript QuickJS nasıl edinilir?

Derleme için kaynak kodunu indirmek şu adresten yapılabilir: aşağıdaki bağlantı. Kurulumdan sonra, motoru Linux veya Mac OS / X üzerinde derlemek için bir Makefile sağlanır.

Aynı bağlantıda QuickJS belgelerine bakabilirsiniz. daha fazla bilgi için. Ayrıca, Google'ın V8 motoruyla QuickJS performansını gösteren karşılaştırma bilgileri ve bununla aynı kategorideki diğer araçlar arasında bir karşılaştırma sağlar.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.