Duktape

Бесплатно
Открытый исходный код
Windows
macOS
Linux
Android
iOS

Сайт: duktape.org

Duktape — это встраиваемый JavaScript-движок с акцентом на портативность, компактный объём кода и низкие требования к памяти. Проект ориентирован на интеграцию в приложения на C и C++, где важны небольшие размеры бинарника, простота сборки и детерминированное поведение. Duktape реализует подмножество спецификаций ECMAScript, предоставляя интерпретаторный механизм выполнения скриптов, управление стеком значений, базовые объекты языка и механизмы расширения средствами C API.

Исторически Duktape развивался как открытый проект с целью предложить лёгкую альтернативу более тяжёлым движкам для встраиваемых систем и приложений с ограниченными ресурсами. Он сочетает интерпретатор, промежуточное представление и набор утилит для интеграции, включая средства для сериализации/десериализации облегчённых значений, обработки ошибок и управления памятью. Поддержка языковых возможностей ориентирована на стабильность и предсказуемость поведения в условиях ограниченных ресурсов.

  • Компактность: реализован с упором на небольшой объём исходного кода и память во время выполнения, что упрощает включение в встраиваемые и мобильные приложения.
  • Портабельность: написан на C с минимальными зависимостями, легко компилируется для широкого круга платформ и архитектур.
  • C API для встраивания: предоставляет функции для вызова скриптов, управления контекстами выполнения, регистрации нативных функций и обмена данными между хостом и скриптами.
  • Поддержка ES-совместимых объектов: включает основные объекты и конструкции JavaScript (функции, объекты, массивы, замыкания), достаточные для типичных сценариев автоматизации и расширения приложения.
  • Управление памятью: содержит механизмы аллокации с возможностью подмены аллокатора и контроля использования памяти, полезные в системах с жёсткими лимитами ресурсов.
  • Обработка ошибок и отладка: предоставляет средства генерации исключений, трассировки и простые инструменты для логирования и диагностики скриптов во встраиваемой среде.
  • Конфигурируемость: позволяет отключать или включать функции и оптимизации на этапе сборки, чтобы подогнать размер и поведение под конкретные требования проекта.
  • Безопасность и изоляция: поддерживает изоляцию контекстов выполнения и контроль над доступом нативных расширений к ресурсам хоста, что помогает ограничивать область влияния скриптов.
  • Формат хранения кода: обеспечивает простые способы загрузки и выполнения исходного JavaScript-кода, а также возможность предварительной компиляции или упаковки скриптов для уменьшения времени запуска.
  • Сообщество и лицензия: как открытый проект, Duktape обычно распространяется с лицензией, позволяющей встраивание и модификацию; конкретные условия зависят от версии и репозитория.
Подробнее