QuickJS Javascript Engine
News
2020-07-05:
— Новый релиз (Changelog).
2020-04-12:
— Новый релиз (Changelog).
2020-03-16:
— Новый релиз (Changelog).
2020-01-19:
— Новый выпуск с экспериментальной поддержкой BigDecimal и обновлённой перегрузкой операторов.
— Небольшие программы на JavaScript для вычисления одного миллиарда знаков числа пи.
Введение
QuickJS — это небольшой встраиваемый движок JavaScript, который поддерживает спецификацию ES2020, включая модули, асинхронные генераторы, прокси и BigInt.
Опционально поддерживается математические расширения, такие как большие десятичные числа с плавающей запятой (BigDecimal), большие двоичные числа с плавающей запятой (BigFloat) и перегрузка операторов. Основные функции:
— Небольшой размер и простота встраивания: всего несколько файлов C, отсутствие внешних зависимостей, 210 КБ кода x86 для простой программы «hello world».
— Быстрый интерпретатор с очень низким временем запуска: выполняет 69000 тестов ECMAScript Test Suite примерно за 95 секунд на одном ядре настольного ПК. Полный жизненный цикл экземпляра среды выполнения завершается менее чем за 300 микросекунд.
— Почти полная поддержка ES2020, включая модули, асинхронные генераторы и полную поддержку Annex B (наследственная веб-совместимость).
— Проходит почти 100% тестов ECMAScript Test Suite при выборе функций ES2020. Сводка доступна в Test262 Report.
— Может компилировать источники JavaScript в исполняемые файлы без внешних зависимостей.
— Сборка мусора с использованием подсчёта ссылок (для уменьшения использования памяти и обеспечения детерминированного поведения) с удалением циклов.
— Математические расширения: BigDecimal, BigFloat, перегрузка операторов, режим bigint, режим math.
— Интерпретатор командной строки с контекстной раскраской, реализованной на JavaScript.
— Маленькая встроенная стандартная библиотека с обёртками библиотеки C.
Benchmark
Онлайн-демонстрация движка QuickJS с его математическими расширениями доступна по адресу numcalc.com. Он был скомпилирован из C в WASM/asm.js с помощью Emscripten.
qjs и qjscalc можно запустить в JSLinux.
Документация
Документация QuickJS: HTML-версия, PDF-версия.
Спецификация расширений JS Bignum: HTML-версия, PDF-версия.
Скачать
Исходный код QuickJS: quickjs-2020-07-05.tar.xz.
Дополнительные материалы QuickJS (содержат файлы Unicode, необходимые для восстановления таблиц Unicode, и тест bench-v8): quickjs-extras-2020-07-05.tar.xz.
Неофициальное зеркало git.
Двоичные выпуски для Linux доступны в jsvu, esvu и здесь.
Компилятор Typescript. Компилировано с помощью QuickJS:
Babel компилятор скомпилирован с помощью QuickJS:
QuickJS включает следующие библиотеки C, которые можно использовать в других проектах:
Список рассылки QuickJS Development:
QuickJS выпущен под лицензией MIT. Если не указано иное, исходные коды QuickJS являются собственностью Фабриса Беллара и Чарли Гордона.
Fabrice Bellard — https://bellard.org
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )