mozjs

Mozjs — это библиотека JavaScript-движка от Mozilla, используемая для встраивания JavaScript в приложения. Обеспечивает высокую производительность и поддержку современных стандартов ECMAScript.

Подпакеты
Имя Краткое описание
mozjs-devel Описание отсутствует

Домашняя страница: https://spidermonkey.dev

Доступные версии
Версия Релиз Архитектура Лицензия Дата сборки Размер Версии ОС Подробности
128.7.0 1.niceos5 x86_64 GPLv2+ or LGPLv2+ or MPL-2.0 25 апр. 2025 г. 389 КиБ Подробности
Описание

Mozjs: мощный JavaScript-движок для разработчиков

Mozjs — это высокопроизводительная библиотека JavaScript-движка, разработанная Mozilla. Она представляет собой ядро SpiderMonkey, которое используется в браузере Firefox, и предназначена для встраивания JavaScript-функциональности в различные приложения и системы. Этот пакет идеально подходит для разработчиков, создающих приложения, требующие обработки скриптов на языке JavaScript, будь то веб-серверы, десктопные приложения или встраиваемые системы. В рамках Найс.ОС пакет mozjs доступен через менеджер пакетов dnf, что упрощает его установку и обновление.

Основные особенности Mozjs

Mozjs предоставляет разработчикам мощный инструмент для работы с JavaScript. Вот ключевые характеристики библиотеки:

  • Поддержка современных стандартов ECMAScript: Mozjs полностью соответствует последним версиям стандарта ECMAScript, включая ES6 и выше, что позволяет использовать современные возможности языка, такие как async/await, стрелочные функции и модули.
  • Высокая производительность: Движок SpiderMonkey оптимизирован для быстрого выполнения JavaScript-кода благодаря JIT-компиляции (Just-In-Time).
  • Гибкость встраивания: Mozjs может быть интегрирован в любое приложение на C/C++, предоставляя API для выполнения скриптов, управления памятью и взаимодействия с объектами JavaScript.
  • Кроссплатформенность: Библиотека поддерживает работу на различных платформах, включая Linux, Windows и macOS, что делает её универсальным решением для разработчиков.
  • Безопасность: Mozjs включает механизмы песочницы (sandboxing), которые изолируют выполнение скриптов, минимизируя риски для хост-приложения.

Для чего используется Mozjs?

Mozjs применяется в широком спектре проектов, где требуется обработка JavaScript вне браузера. Рассмотрим основные сценарии применения:

  • Веб-серверы и Node.js: Хотя Node.js использует V8, Mozjs может быть альтернативой для серверных приложений, где требуется встраивание JavaScript.
  • Десктопные приложения: Программы, написанные на C/C++, могут использовать Mozjs для добавления скриптовых возможностей, например, для автоматизации задач или настройки интерфейса.
  • Игровые движки: Некоторые игровые движки встраивают Mozjs для выполнения скриптов, управляющих логикой игры.
  • Встраиваемые системы: Устройства IoT и другие встраиваемые системы могут использовать Mozjs для выполнения скриптов, обеспечивающих гибкость в управлении.

Установка Mozjs на Найс.ОС

Для пользователей Найс.ОС установка пакета mozjs осуществляется с помощью пакетного менеджера dnf. Процесс прост и интуитивно понятен. Выполните следующую команду для установки:

sudo dnf install mozjs

После установки вы можете проверить установленную версию библиотеки, чтобы убедиться, что она готова к использованию. Для этого можно использовать команду:

dnf info mozjs

Если вы разрабатываете приложения, использующие Mozjs, вам также может понадобиться установить пакеты разработчика, такие как mozjs-devel, которые содержат заголовочные файлы и документацию:

sudo dnf install mozjs-devel

Пример использования Mozjs в разработке

Давайте рассмотрим базовый пример встраивания Mozjs в приложение на C++. Предположим, вы хотите выполнить простой JavaScript-код из вашего приложения. Вот минимальный пример кода:

#include 
#include 

int main() {
    // Инициализация JavaScript Runtime
    JS_Init();
    JSRuntime* rt = JS_NewRuntime(8L * 1024 * 1024);
    if (!rt) {
        printf("Не удалось создать JSRuntime\n");
        return 1;
    }

    // Создание контекста
    JSContext* cx = JS_NewContext(rt, 8192);
    if (!cx) {
        printf("Не удалось создать JSContext\n");
        JS_DestroyRuntime(rt);
        return 1;
    }

    // Инициализация глобального объекта
    JS::RootedObject global(cx, JS_InitStandardClasses(cx, nullptr));
    if (!global) {
        printf("Не удалось инициализировать стандартные классы\n");
        JS_DestroyContext(cx);
        JS_DestroyRuntime(rt);
        return 1;
    }

    // Выполнение JavaScript-кода
    const char* script = "console.log('Привет от Mozjs!'); 42;";
    JS::RootedValue rval(cx);
    bool success = JS_EvaluateScript(cx, global, script, strlen(script), "test.js", 1, &rval);
    if (success) {
        printf("Скрипт выполнен успешно!\n");
    } else {
        printf("Ошибка выполнения скрипта\n");
    }

    // Очистка
    JS_DestroyContext(cx);
    JS_DestroyRuntime(rt);
    JS_ShutDown();
    return 0;
}

Этот код демонстрирует создание окружения JavaScript, выполнение простого скрипта и очистку ресурсов. Обратите внимание, что для компиляции этого кода вам нужно связать его с библиотекой Mozjs. Пример команды компиляции:

g++ -o js_example js_example.cpp -lmozjs-60

Обратите внимание, что конкретная версия библиотеки (например, mozjs-60) может отличаться в зависимости от установленной версии пакета в вашей системе Найс.ОС.

Преимущества использования Mozjs в Найс.ОС

Использование Mozjs на платформе Найс.ОС имеет ряд преимуществ, особенно для разработчиков, ориентированных на open-source решения:

  • Интеграция с системой: Пакет Mozjs поддерживается через репозитории Найс.ОС, что гарантирует регулярные обновления и исправления безопасности.
  • Сообщество Mozilla: Mozjs активно развивается сообществом Mozilla, что обеспечивает высокое качество кода и поддержку.
  • Документация: Библиотека имеет обширную документацию и примеры, доступные на официальном сайте Mozilla Developer Network (MDN).

Ограничения и особенности

Несмотря на свои сильные стороны, Mozjs имеет некоторые ограничения, о которых стоит знать:

  • Сложность API: Для новичков работа с C++ API Mozjs может показаться сложной из-за необходимости управления памятью и понимания внутренней структуры движка.
  • Размер библиотеки: Mozjs может быть избыточным для небольших проектов, где достаточно более легковесных решений, таких как Duktape.
  • Отсутствие встроенного DOM: В отличие от браузерного окружения, Mozjs не предоставляет встроенной поддержки DOM или других веб-API, что требует дополнительных усилий для их реализации при необходимости.

Mozjs — это мощный инструмент для разработчиков, которым требуется надежный и производительный JavaScript-движок для встраивания в приложения. Благодаря поддержке современных стандартов ECMAScript и гибкости интеграции, он остается популярным выбором для множества проектов. На платформе Найс.ОС установка и использование Mozjs максимально упрощены благодаря пакетному менеджеру dnf, что делает его доступным как для опытных разработчиков, так и для новичков.