QuickJS - легкий движок JavaScript, разработанный основателем QEMU и FFmpeg

JavaScript

Французский математик Фабрис Беллар, который основал проекты QEMU и FFmpeg, а также создал самую быструю формулу для вычисления числа Пи и разработал формат изображения BPG.

Фабрис Беллар наиболее известен как ведущий разработчик QEMU (эмулятор, эмулирующий различные аппаратные архитектуры) и Tiny C Compiler (tcc), очень маленький, но всеобъемлющий компилятор C, изначально написанный для победы в «Международном конкурсе запутанного кода C».

Сейчас недавно поделился с публикой первой версией своей новой работы который находится в JavaScript, и это новый движок под названием JavaScript QuickJS.

О JavaScript QuickJS

Движок QuickJS JavaScript он компактен и разработан для встраивания в другие системы. Код проекта Он написан на C и распространяется под лицензией MIT. Также доступна сборка движка, скомпилированная в WebAssembly с использованием Emscripten и подходящая для работы в браузерах.

Реализация JavaScript поддерживает спецификацию ES2019, включая модули, асинхронные генераторы и прокси.

В движке QuickJS JavaScript поддерживаются дополнительные нестандартные математические расширения для JavaScript, такие как типы BigInt и BigFloat, а также перегрузка операторов.

По производительности QuickJS значительно превосходит доступные аналогиНапример, в тесте bench-v8 движок XS опережает на 35%, DukTape более чем вдвое, JerryScript в три раза и MuJS семь раз.

Помимо библиотеки для встраивания движка в приложение, в проекте также есть интерпретатор qjs, который можно использовать для запуска кода JavaScript из командной строки.

Кроме того, компилятор qjsc доступен и способен выводить исполняемые файлы, которые можно запускать отдельно и что они не требуют внешних зависимостей.

Из основных возможностей движка QuickJS JavaScript выделяются следующие моменты:

  • Компактный и легко интегрируемый в другие проекты. Код включает только несколько файлов C, для сборки которых не требуются внешние зависимости. Простое скомпилированное приложение занимает около 190 Кб.
  • Очень высокая производительность и быстрое время запуска. Прохождение 56 тысяч тестов совместимости с ECMAScript занимает примерно 100 секунд при запуске обычного рабочего стола на ядре. Инициализация времени выполнения занимает менее 300 микросекунд
  • Практически полная поддержка спецификации ES2019 и полная поддержка приложения «B», которое определяет компоненты для совместимости со старыми веб-приложениями.
  • Завершите прохождение всех тестов ECMAScript Test Suite
  • Поддержка компиляции кода Javascript в исполняемые файлы без внешних зависимостей
  • Сборщик мусора полагается на подсчет ссылок без выполнения циклической очистки, что обеспечивает предсказуемое поведение и снижает потребление памяти.
  • Набор расширений для математических вычислений на языке JavaScript
  • Оболочка для выполнения кода в режиме командной строки, поддерживающая контекстную подсветку кода.
  • Компактная стандартная библиотека поверх библиотеки C

Кроме этого, С другой стороны, проект также разрабатывает три библиотеки C. связанные стороны, участвующие в QuickJS и подходящие для индивидуального использования:

  1. свободное выражение: небольшая и быстрая библиотека регулярных выражений, соответствующая спецификации JavaScript ES2019
  2. libunicode: небольшая библиотека Unicode, которая поддерживает преобразование регистра, нормализацию Unicode, запросы сценариев Unicode, запросы общих категорий Unicode и все двоичные свойства Unicode
  3. библиотека: Это также небольшая библиотека, которая реализует операции с плавающей запятой IEEE 754 и трансцендентные функции с точным округлением. Он хранится как отдельный проект.

Как получить SavaScript QuickJS?

Скачать исходный код для компиляции можно из следующая ссылка. После установки предоставляется Makefile для компиляции движка в Linux или Mac OS / X.

По той же ссылке вы можете ознакомиться с документацией QuickJS. для дополнительной информации. Он также предоставляет контрольную информацию, показывающую производительность QuickJS с движком Google V8, и сравнение его с другими инструментами в той же категории.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

bool (истина)