LINUX.ORG.RU

QuickJS-NG 0.11.0

 , , , ,


0

2

После более пяти месяцев разработки состоялся выпуск 0.11.0 QuickJS-NG – небольшого встраиваемого движка JavaScript и предназначенный для поддержки последней спецификации ECMAScript.
Это форк оригинального проекта QuickJS Фабриса Белларда и Чарли Гордона, и создан после того, как QuickJS перестал развиваться, с целью возобновить его разработку.

Проект сосредоточен на следующих аспектах (но не ограничивается ими):

  • Развитие сообщества
  • Тестирование
  • Кроссплатформенность
  • Функции ECMAScript

Отличия от оригинального проекта можно посмотреть здесь. Проект написан на языке C и распространяется по лицензии MIT.

Список основных изменений:

  • os.exec поддерживает дополнительные группы.
  • Function.prototype.arguments соответствует спецификации.
  • Прото-методы итератора соответствуют спецификации.
  • TypedArray.prototype.includes соответствует спецификации.
  • Добавлены функции и методы: JS_IsSet, JS_IsWeakRef, Map, WeakMap, Iterator.concat и др.
  • Перенос исправлений по обработке OOM, утечке памяти и других изменений из bellard/quickjs.
  • Использование poll() вместо select() в функции js_os_poll.
  • Конструктор TypedArray сделан расширяемым.
  • Добавлены JS_New{Internal,Plain,Range,Reference,Syntax,Type}Error.
  • В список использующих QuickJS-NG проектов добавлена Lua-библиотека регулярных выражений Lua jsregexp.
  • Другие улучшения, оптимизации и исправления ошибок.

>>> Подробности на GitHub

★★★★★

Проверено: hobbit ()
Последнее исправление: dataman (всего исправлений: 1)

к сожалению там «Several runtimes can exist at the same time but they cannot exchange objects. Inside a given runtime, no multi-threading is supported.»

для эмбед куда-нибудь не годно. Лучше-бы он тормозил, но был дружен с тредами и хоть как-то мог обмениваться объектами

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Довольно много юзкейсов, когда скриптинг нужен только в одном треде, либо объекты никуда наружу и между тредами не утекают.
Для остальных случаев, думаю, можно реализовать GIL как в питоне, жил же он как-то всё это время. Когда альтернативы - собираемые часами v8 и spidormonkey, звучит вполне применимо

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)

Я его теперь встраиваю в свои наколенные демоны, написанные на rust 🦀 в качестве обработчика конфигов в формате js, вместо этих ваших toml, yaml и прочих json.

surefire ★★★
()

QuickJS перестал развиваться

Последний релиз на сайте от сентября 2025 года.

beck ★★★★
()
Ответ на: комментарий от beck

А что это, если не секрет? Конфиг в виде js кода?

Да, обычный js модуль, который экспортирует объект key/value. Мне показалось удобней, чем повыдумали разных форматов, абы исправить врожденные недостатки json, типа кавычки у ключей, отсутствие комментариев, конечных запятых. Можно даже императивности добавить в рамках разумного, например, если значения дублируются, немного отличаются или в цикле добавить много схожих конфигураций.

И самое важное, что в итоге получается, не намного жирнее, чем парсеры модных форматов.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 4)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.