Встраиваемый движок JavaScript Duktape


JavaScript есть повсюду, но что, если вы хотите, чтобы он использовался в качестве языка сценариев в вашем собственном приложении или устройстве? Duktape может быть тем, что вам нужно. Это открытый исходный код и только что достиг версии 1.

Если вам нужно добавить JavaScript в проект, вы можете использовать один из больших движков, таких как SpiderMonkey или V8, но ключевое слово здесь — «большой». Duktape является языком, совместимым с ECMAScript 5, и он также имеет некоторые функции от E6, упакованные в небольшую программу C, которая может быть связана с проектами C или C ++.

Конечно, «маленький» — понятие относительное, и 200 КБ кода все еще могут быть слишком много для некоторого оборудования. Также требуется 46 КБ оперативной памяти, но ее можно уменьшить до 22 КБ. С точки зрения Интернета вещей он может работать с системами, имеющими 256 КБ флэш-памяти и 96 КБ ОЗУ. Чтобы представить это в перспективе, это означает, что он может работать на Arduino Due, но не на Uno.

Другие преимущества:

Встроенный механизм регулярных выражений

Встроенная поддержка Unicode

Минимальные зависимости от платформы

Комбинированный подсчет ссылок и сборка мусора по меткам и очистке с финализацией

Пользовательские функции, такие как сопрограммы, встроенная среда ведения журналов и встроенная среда загрузки модулей на основе CommonJS

Виртуализация собственности с использованием подмножества объекта прокси ECMAScript E6

Либеральная лицензия (MIT)

Он также имеет глобальный объект Duktape, который предоставляет настраиваемые встроенные функции, такие как print () и alert ().

Начать работу также очень легко. Чтобы добавить его в проект, вы просто включаете его, запускаете команду инициализации и затем передаете ей код JavaScript, который вы хотите запустить:

duk_eval_string (ctx, «print (‘Привет, мир!’);»);

где ctx — указатель на движок Duktape. Таким образом, вы можете просто предоставить пользователю буфер для ввода кода и позволить ему запустить его.

В большинстве случаев вы захотите добавить пользовательские функции в среду JavaScript, и для этого вы добавляете функции C, которые можно вызывать из JavaScript. Это просто и требует только использования некоторых вызовов API Duktape для передачи параметров и результатов и для регистрации функции C в движке. После регистрации функция C может вызываться так же, как встроенная функция JavaScript.

Помимо возможности использовать Duktape в качестве встраиваемого движка JavaScript, DukLuv — это отдельный проект, который добавил libuv в движок Duktape для создания чего-то, что работает как Node.js, но занимает мало места — Node.js для встраиваемых устройств, если тебе нравится.


Добавить комментарий