Imagen

Arkov Lua-Python Bridge

Arkov es una librería que permite a los desarrolladores integrar un entorno Lua con un ejecutable Python, estableciendo así un canal de comunicación bidireccional. Con Arkov, puedes invocar funciones de Python directamente desde Lua y viceversa, lo que potencia enormemente las capacidades de tu proyecto. Al superar las limitaciones inherentes del lenguaje Lua, Arkov abre un abanico de posibilidades, permitiéndote aprovechar la versatilidad y la extensa gama de bibliotecas disponibles en Python. Independientemente de lo que estés desarrollando, Arkov puede elevar tu proyecto Lua a nuevas alturas. :fuckyeah-1414023828:

Arkov utiliza un sistema de "hooks" para establecer una conexión entre un entorno Lua y un ejecutable de Python.

Instalación y Uso

Para utilizar esta librería, debes tener instalado Python 3 y PyInstaller en tu entorno de desarrollo. Puedes instalar PyInstaller con pip utilizando el comando pip install pyinstaller desde una terminal con permisos de administrador.

Luego, puedes importar la librería desde Python y conectarte al entorno Lua de la siguiente manera:

Código: Seleccionar todo

import arkov
hook = arkov.Hook.slave()

Después, debes definir las funciones que deseas exponer a Lua de la siguiente manera:

Código: Seleccionar todo

def concat(a: str, b: str): return f'{a}{b}'

def add(a: int, b: int): return a+b

def sub(a: int, b: int): return a-b

Finalmente, debes poner el entorno Python como esclavo del entorno Lua, en espera de instrucciones, utilizando el siguiente método:

Código: Seleccionar todo

hook.obey()

Compilación

Para evitar errores de dependencias, debes compilar tu código Python a un ejecutable. Para ello, ejecuta el comando pyinstaller --onefile MI_SCRIPT, donde MI_SCRIPT es el nombre del archivo de tu código escrito en Python. Esto generará un ejecutable en la carpeta dist con el nombre de tu proyecto.

Integración con tu Proyecto Lua

Una vez que hayas compilado tu código Python a un ejecutable portátil usando PyInstaller, muévelo a la carpeta CD_Root de tu proyecto. Luego, puedes integrarlo en tu entorno Lua de la siguiente manera:

Código: Seleccionar todo

arkov = require('arkov')
-- Suponiendo que tu ejecutable
-- se llama "mi_ejecutable.exe"
hook = arkov.hook.invoke('mi_ejecutable.exe')

Además, puedes incluir true como argumento si deseas que se muestre la ventana de consola para el ejecutable de Python. Esto podría ser útil para depurar y corregir errores.

Enlazar Funciones

Para poder llamar a una función de Python directamente desde Lua, puedes usar el método link, de la siguiente manera:

Código: Seleccionar todo

local py_concat = hook:link('concat')
local resultado = py_concat('Hola ', 'Mundo')

De esta manera, hook:link('concat') devuelve una función que llama a la función concat de tu código en Python, pasándole todos los argumentos que recibe y devolviendo el resultado.

Como en el ejemplo se definen las funciones concat, add y sub, podrías enlazarlas y utilizarlas de la siguiente manera:

Código: Seleccionar todo

-- Enlazarlas
local py_concat = hook:link('concat')
local py_add = hook:link('add')
local py_sub = hook:link('sub')

-- Llamarlas
local resultado1 = py_concat('Hola ', 'Mundo')
local resultado2 = py_add(5, 4)
local resultado3 = py_sub(5, 4)

En este caso, resultado1 sería igual a 'Hola Mundo', resultado2 sería igual a 9 y resultado3 sería igual a 1.

Descarga y Ejemplos

Puedes descargar Arkov Template.apt, una plantilla que incluye los archivos de la librería Arkov (arkov.lua y arkov.py), así como el archivo test.py que sirve como una prueba de uso de la librería.

Además, puedes descargar QR Code.apz, que es un ejemplo práctico de un proyecto diseñado para escanear y generar códigos QR. Este ejemplo te permitirá ver cómo se puede aplicar la librería Arkov en un proyecto real.

¡Espero les sea de utilidad este aporte! :dealwithit-1414024955: