QuickJS - lekki silnik JavaScript opracowany przez twórcę QEMU i FFmpeg

JAVASCRIPT

Francuski matematyk Fabrice Bellard, który założył projekty QEMU i FFmpeg, a także stworzył najszybszą formułę obliczania liczby Pi i opracował format obrazu BPG.

Fabrice Bellard jest najbardziej znany jako główny programista QEMU (emulator, który emuluje różne architektury sprzętowe) i Tiny C Compiler (tcc), bardzo mały, ale wszechstronny kompilator C, pierwotnie napisany, aby wygrać „Międzynarodowy konkurs na zaciemniony kod języka C”.

Teraz niedawno udostępnił publicznie pierwszą wersję swojej nowej pracy który jest w JavaScript i to jest nowy silnik o nazwie JavaScript QuickJS.

O JavaScript QuickJS

Silnik JavaScript QuickJS jest kompaktowy i zaprojektowany do integracji z innymi systemami. Kod projektu Jest napisany w C i rozpowszechniany na licencji MIT. Dostępna jest również kompilacja silnika skompilowana do WebAssembly przy użyciu Emscripten i odpowiednia do uruchamiania w przeglądarkach.

Implementacja JavaScript Obsługuje specyfikację ES2019, w tym moduły, generatory asynchroniczne i proxy.

W silniku JavaScript QuickJS obsługiwane są opcjonalne niestandardowe rozszerzenia matematyczne dla języka JavaScript, takie jak typy BigInt i BigFloat, a także przeciążanie operatorów.

Pod względem wydajności QuickJS znacznie przewyższa dostępne analogiNa przykład w teście bench-v8 silnik XS wyprzedza o 35%, DukTape ponad dwukrotnie, JerryScript trzy razy, a MuJS siedem razy.

Oprócz biblioteki do osadzania silnika w aplikacji, projekt oferuje również tłumacza qjs, którego można użyć do uruchomienia kodu JavaScript z wiersza poleceń.

Ponadto, Kompilator qjsc jest dostępny i może wyświetlać pliki wykonywalne, które można uruchomić osobno i że nie wymagają one zewnętrznych zależności.

Jedną z głównych funkcji silnika JavaScript QuickJS wyróżniają się następujące punkty:

  • Kompaktowy i łatwy do zintegrowania z innymi projektami. Kod zawiera tylko kilka plików C, które nie wymagają zewnętrznych zależności do kompilacji. Prosta skompilowana aplikacja zajmuje około 190 Kb
  • Bardzo wysoka wydajność i krótkie czasy uruchamiania. Przejście 56 tysięcy testów zgodności ECMAScript zajmuje około 100 sekund w przypadku normalnego pulpitu z jądrem. Inicjalizacja w czasie wykonywania zajmuje mniej niż 300 mikrosekund
  • Niemal pełne wsparcie dla specyfikacji ES2019 i pełne wsparcie dla aplikacji „B”, która definiuje komponenty pod kątem kompatybilności ze starszymi aplikacjami internetowymi
  • Ukończ wszystkie testy zestawu testów ECMAScript
  • Wsparcie dla kompilowania kodu Javascript do plików wykonywalnych bez zewnętrznych zależności
  • Moduł odśmiecania pamięci opiera się na zliczaniu referencji bez przeprowadzania cyklicznego czyszczenia, co pozwala na przewidywalne zachowanie i mniejsze zużycie pamięci
  • Zestaw rozszerzeń do obliczeń matematycznych w języku JavaScript
  • Powłoka do wykonywania kodu w trybie wiersza poleceń, która obsługuje kontekstowe podświetlanie kodu
  • Kompaktowa biblioteka standardowa w bibliotece C.

Oprócz tego Z drugiej strony w ramach projektu powstają również trzy biblioteki C. podmioty powiązane zaangażowane w QuickJS i nadające się do użytku indywidualnego:

  1. freegexp: mała i szybka biblioteka wyrażeń regularnych zgodna ze specyfikacją JavaScript ES2019
  2. libunikod: mała biblioteka Unicode, która obsługuje konwersję wielkości liter, normalizację Unicode, żądania skryptów Unicode, zapytania dotyczące kategorii ogólnych Unicode i wszystkie właściwości binarne Unicode
  3. biblioteka: Jest to również mała biblioteka, która implementuje operacje zmiennoprzecinkowe IEEE 754 i funkcje transcendentalne z dokładnym zaokrągleniem. Jest utrzymywany jako osobny projekt.

Jak zdobyć SavaScript QuickJS?

Pobieranie kodu źródłowego do kompilacji można wykonać z poniższy link. Po instalacji dostarczany jest plik Makefile do skompilowania silnika w systemie Linux lub Mac OS / X.

W tym samym linku możesz zapoznać się z dokumentacją QuickJS po więcej informacji. Zawiera również informacje porównawcze pokazujące wydajność QuickJS z silnikiem V8 Google oraz porównanie między nim a innymi narzędziami z tej samej kategorii.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.