Duktape и QuickJS

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Собственно заинтересовался данными двумя джаваскриптовыми движками, которые вроде как заточны под встраиваемость, но которые имеют билды под линукс и винду (видимо неоффициальные бинарники, как я понял. Насчет бинарников для макоси не смотрел).

Заинтересовало следующее:
1) Насколько их можно применить вместо node.js в качестве сервера (ну типа поднять какую-нить приложуху)? Или в качестве полноценной альтернативы Node.js только Deno?
2) Насколько полноценный JavaScript в этих движках? Ну хотя бы чтобы старый стандарт ES5 полностью поддерживался (насколько я понял по докам Duktape ES5 вроде бы поддерживает, а QuickJS даже ES2020 поддерживает, но насколько полно они это поддерживают, вот что интересно).
3) Насколько я понимаю оба эти движка затачиваются под embedded? Или это не только embedded может быть?

duktape.org — офф. сайт Duktape
bellard.org/quickjs — офф. сайт QuickJS

В общем кто что знает про эти два движка?

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Відповідь на друге питання можно знайти тут https://test262.report/

Про duktape: так, це embeddable скриптовий движок для інших програм, отже маленький і без великого API та вбудованих бібліотек (схожий на lua). Судячи із duktape.org, активно використовується як скриптовий движок в інших програмах, про standalone використання сказано мало. Я колись дивився на hs-duktape (байндинги для Хаскеля), про сам libduktape сказати нічого не можу, але hs-duktape давав лише куці базові інструменти.

Про quickjs: поки що це більше персональний проект Фабріса Беллара, але не слід забувати, що із цієї святої людини почався ffmpeg та qemu.

Про перформанс: ці два движка не мають JIT-компіляторів і за v8 угнатись у них немає шансів.

Висновок десь такий: із ядром мови (в розумінні стандартів EcmaScript) проблем практично не повинно бути (але цілком можливі якісь тонкі і складні для дебагу відхилення від того, як поводяться мейнстримні рантайми). Але про перформанс і всю вбудовану функціональність Ноди (nodejs.org/api) можна забути і будь-які неджаваскриптові бібліотеки доведеться обгортати вручну. Шлях сильно на любителя і треба бути готовим розуміти і міняти код движка під себе.

применить вместо node.js в качестве сервера

— думаю, що спочатку як мінімум доведеться написати на Сі і протестувати обв’язки для сокетів/http/tls.

Спасибо за разъяснения) В целом понятно, что к чему)

Про quickjs: поки що це більше персональний проект Фабріса Беллара, але не слід забувати, що із цієї святої людини почався ffmpeg та qemu.

Он еще Tiny C Compiler написал)

Підписатись на коментарі