Кроссплатформенная C# реализация Lua

Я ищу способ встроить Lua в мое кросс-платформенное приложение для встраивания. Проблема в том, что на этой платформе я не нашел полной, стабильной и работающей реализации Lua. Я пробовал следующее (вот список репозиториев и их проблемы):

  • LuaInterface - требует, чтобы я компилировал dll для любой нестабильной платформы, так как v2 использует Windows
  • KopiLua - ошибки, даже их собственные образцы не работают
  • AluminiumLua - зависит от DLL, поэтому не является реализацией
  • NLua - основан на KopiLua и наследует все проблемы
  • UniLua - ... это для единства

Кроме того, большинство из этих реализаций терпит неудачу, когда я делаю простой тест:

for(i=0;i<100000;i)
    Lua.CallSomeFunctionFromLua()

Время от времени это вызывает ошибку, особенно на KopiLua и LuaInterface.

Вопрос в том, существует ли полная, стабильная реализация Lua строго на C#, без каких-либо зависимостей от платформы?

1 ответ

Решение

Если вы не найдете хорошую чистую C# библиотеку реализации lua, попробуйте дать шанс luabind. Как сказано в документации, она переносима. Вы можете создать C++/CLI-интерфейс между luabind и вашим фреймворком, как сказано здесь. Это очень рискованная идея, но у вас будет контроль глубины происходящего. Поскольку luabind - это оболочка C++ для C Lua, реализовать интерфейс на C# не составит большого труда.

Другие вопросы по тегам