Кроссплатформенная 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# не составит большого труда.