Repolode
dop251

dop251/goja

Движок JavaScript на чистом Go с поддержкой ECMAScript 5.1 для встраивания выполнения JS-кода в приложения на Go.

Звёзды
7,155
Форки
497
Открытые issues
33
Последний коммит
16 часов назад

Что это?

Goja — движок JavaScript, полностью реализованный на Go. Он поддерживает ECMAScript 5.1, а большинство возможностей ES6 пока находятся в разработке. С его помощью программа на Go может загружать и выполнять JavaScript-код, передавать в скрипты значения Go и получать результаты — без cgo и обёртки над V8.

Движок предназначен для сценариев, в которых скрипты управляют логикой внутри приложения на Go: например, отвечают за конфигурацию, правила или код плагинов. Поскольку Goja написан на чистом Go, его легко собирать, и он работает на любой платформе, поддерживаемой Go. Кроме того, хост-приложение получает точный контроль над средой выполнения: например, может прерывать долго работающие скрипты и задавать соответствие имён полей структур Go соглашениям об именовании в JavaScript.

В Goja нет setTimeout, setInterval и API Node.js — их предоставляет отдельный проект goja_nodejs. Каждый экземпляр Runtime может использоваться только из одной горутины, а на вычислительно сложных задачах Goja значительно медленнее V8.

Ключевые возможности

  • 01Реализует ECMAScript 5.1, включая поддержку регулярных выражений и строгого режима.
  • 02Преобразует значения Go в JavaScript и экспортирует значения JavaScript обратно в Go.
  • 03Вызывает функции JavaScript из Go, с заданным значением this или без него.
  • 04Сопоставляет поля и методы структур Go с именами в JavaScript с помощью настраиваемого преобразователя имён.
  • 05Позволяет прерывать выполняющиеся скрипты из другой горутины.
  • 06Поддерживает sourcemaps и позволяет запускать Babel и компилятор TypeScript.

Сценарии использования

  • Встраивание пользовательских скриптов или правил в сервис на Go.
  • Запуск библиотек ES5 или инструментов сборки внутри программы на Go без cgo.
  • Создание системы плагинов или конфигурации на JavaScript для приложения на Go.
  • Изучение среды выполнения JavaScript или управление ею из Go.

Темы

Частые вопросы

Что такое goja?
Движок JavaScript на чистом Go с поддержкой ECMAScript 5.1 для встраивания выполнения JS-кода в приложения на Go. Goja — движок JavaScript, полностью реализованный на Go. Он поддерживает ECMAScript 5.1, а большинство возможностей ES6 пока находятся в разработке. С его помощью программа на Go может загружать и выполнять JavaScript-код, передавать в скрипты значения Go и получать результаты — без cgo и обёртки над V8.
goja можно использовать бесплатно? Какая у него лицензия?
goja распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
goja всё ещё поддерживается?
Активно поддерживается. Последний коммит в goja — 21 окт. 2026 г..
Для чего можно использовать goja?
Встраивание пользовательских скриптов или правил в сервис на Go. Запуск библиотек ES5 или инструментов сборки внутри программы на Go без cgo. Создание системы плагинов или конфигурации на JavaScript для приложения на Go. Изучение среды выполнения JavaScript или управление ею из Go.
Где скачать goja?
Исходный код и инструкции по установке — на GitHub: https://github.com/dop251/goja

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты