OpenHub
OpenHub
Войти

lynaпакет

с апстрима
автор: bayselonarrendскачиваний: 0

Пакет лежит в основном пуле хаба: короткой формы достаточно, если хаб прописан сервером пакетов в opm.cfg.

opm install lyna

Установка на opm младше 1.7.0

Легаси-флоу. Клиент младше 1.7.0 адрес пула в аргументе не разбирает: пул сначала прописывают сервером пакетов, и только потом ставят через него. На 1.7.0 и новее этот раздел не нужен — хватает команды из шапки страницы.

Добавьте пул сервером пакетов в opm.cfg. Порт продублирован в «Сервер»: у opm push поле «Порт» не читается.

{ "СервераПакетов": [ { "Имя": "default", "Сервер": "https://hub.1cdevelopers.ru", "Порт": 443, "ПутьНаСервере": "/api/v1/pools/default/download/", "РесурсПубликацииПакетов": "/api/v1/pools/default/push", "Приоритет": 1 } ] }

И ставьте пакет, указывая сервер:

opm install -m default lyna

Описание

Описание

Луна - это библиотека интеграции языка программирования Lua с OneScript. Она представляет из себя Native API компоненту на языке Rust, в основе которой лежит крейт mlua, а также программную обертку вокруг нее. Цель Луны - дать разработчику возможность увеличить скорость выполнения своих скриптов через вынесение тяжелой логики на более производительный движок Lua, при этом не отказываясь от разработки решений в рамках экосистемы OneScript

Возможности

  • Выполнение Lua-кода: Запуск скриптов из строки или файла
  • Компиляция в байт-код: Предварительная компиляция для повышения производительности
  • Управление переменными: Установка и получение глобальных переменных
  • Вызов функций: Прямой вызов Lua-функций с передачей параметров
  • Система пакетов: Загрузка и управление Lua-модулями
  • Перезапуск VM: Сброс состояния виртуальной машины

Пример кода

Выполнение кода из строки

	Код = "
	|function countValuesGreaterThan(array, threshold)
	|	local count = 0
	|	
	|	for _, value in ipairs(array) do
	|		if value > threshold then
	|			count = count + 1
	|		end
	|	end
	|	
	|	return count
	|end";

	Lua = Новый Lua();
	Lua.ВыполнитьКодИзСтроки(Код);

	МассивАргументов = Новый Массив;
	МассивАргументов.Добавить(МассивЗначений);
	МассивАргументов.Добавить(500);

	Результат = Lua.ВызватьФункцию("countValuesGreaterThan", МассивАргументов);

Выполнение кода из заранее скомпилированного файла

	Lua = Новый Lua();
	Результат = Lua.ВыполнитьБайтКодФайла(ПутьКФайлу);

	МассивАргументов = Новый Массив;
	МассивАргументов.Добавить(МассивЗначений);
	МассивАргументов.Добавить(500);

	Результат = Lua.ВызватьФункцию("countValuesGreaterThan", МассивАргументов);	

Установка

Для начала работы необходимо клонировать репозиторий и собрать OSPX пакет в каталоге /src/os/ при помощи команды

  opm build

Установить собранный пакет можно при помощи команды

  opm install -f <путь к ospx файлу>

API

Выполнение кода

ВыполнитьКодИзСтроки(Код)

Выполняет Lua код, переданный в виде строки.

Параметр Тип Описание
Код Строка Программный код для выполнения

Возвращаемое значение: Произвольный - Результат выполнения


ВыполнитьКодИзФайла(Путь)

Выполняет Lua код из указанного текстового файла.

Параметр Тип Описание
Путь Строка Путь к файлу кода

Возвращаемое значение: Произвольный - Результат выполнения


Компиляция и байт-код

СкомпилироватьКодИзСтроки(Код)

Преобразует исходный код в байт-код Lua.

Параметр Тип Описание
Код Строка Программный код для компиляции

Возвращаемое значение: Произвольный - Результат выполнения


ВыполнитьБайтКод(БайтКод)

Выполняет ранее скомпилированный код.

Параметр Тип Описание
БайтКод ДвоичныеДанные Байт код для выполнения

Возвращаемое значение: Произвольный - Результат выполнения


ВыполнитьБайтКодФайла(Путь)

Выполняет байт код из указанного файла.

Параметр Тип Описание
Путь Строка Путь к файлу с байт кодом

Возвращаемое значение: Произвольный - Результат выполнения


Вызов функций

ВызватьФункцию(ИмяФункции, Аргументы)

Вызывает функцию, инициализированную ранее выполненным кодом.

Параметр Тип Описание
ИмяФункции Строка Имя функции для вызова
Аргументы Массив Из Произвольный Аргументы функции

Возвращаемое значение: Произвольный - Результат выполнения


Управление переменными

УстановитьГлобальнуюПеременную(Имя, Значение)

Устанавливает значение глобальной переменной в контексте.

Параметр Тип Описание
Имя Строка Имя переменной
Значение Произвольный Значение переменной

ПолучитьГлобальнуюПеременную(Имя)

Получает значение глобальной переменной контекста.

Параметр Тип Описание
Имя Строка Имя переменной

Возвращаемое значение: Произвольный - Результат выполнения


Управление пакетами

ДобавитьПакетИзСтроки(ИмяПакета, Код)

Добавляет код из строки как пакет с указанным именем.

Параметр Тип Описание
ИмяПакета Строка Имя пакета, по которому он будет доступен после добавления
Код Строка Программный код пакета

ДобавитьПакетИзФайла(ИмяПакета, Путь)

Добавляет код из файла как пакет с указанным именем.

Параметр Тип Описание
ИмяПакета Строка Имя пакета, по которому он будет доступен после добавления
Путь Строка Путь к файлу кода

ПолучитьСписокПакетов()

Получает список добавленных в окружение пакетов.

Возвращаемое значение: Массив Из Строка - Результат выполнения


Управление VM

Перезапустить()

Очищает контекст выполнения и перезапускает LuaVM.