Актуальная версия Raylib для Vlang с поддержкой Wasm

Golang - прекрасный язык для backend-а с низким порогом входа и простым синтаксисом, основы которого изучаются за неделю экспериментов. Но у него есть один серьезный недостаток - плохое взаимодействие с c/c++ кодом в плане быстродействия или вообще невозможность в случае определенных целевых платформ (web/wasm). Для клиентской части с рендером графики и поддержкой разных платформ придется подыскать что-то другое. Хорошей альтернативой может стать Vlang.
Vlang выглядит как работа над ошибками Golang-а: вызов c/c++ кода без накладных расходов на всех целевых платформах, автовсплытие ошибок как в Rust, контроль модификации данных через явное указание мутабельности, контроль за инлайном, comptime (исполняемый во время компиляции) код, возможность использования нескольких видов сборщиков мусора, корректный dead code elimination на уровне отдельных типов/функций модуля, сборка релизной версии через генерацию C-кода и дальнейшие gcc/emscripten-оптимизации.
Raylib - легковесная библиотека, предоставляющая унифицированный рендер на основе OpenGL под несколько платформ (OpenGl3.3, Gles3, WebGL2), унифицированный доступ к системам ввода (клавиатура, мышь, touch-интерфейс и разнообразные контроллеры), унифицированный доступ к аудиоподсистеме, а так же имеющая штатную реализацию отладочного интефейса, похожую на imgui.
Эта библиотека имеет обертки для Vlang, но они все устарели (поддерживаемая версия 4.2, а актуальная версия 5.5), а так же не поддерживают wasm-сборки. Было решено сделать свою обертку к актуальной версии Raylib с возможностью автообновления:
- Поддержка
rcoreцеликом с автообновлением на базе исходных хедеров (rmodels,rshapes,rcamera,raudioвключительно). Поддерживаются все перечисления, используемые в виде параметров вызовов. - Математика была переписана практически полностью без
C-кода с учетом особенностейVlang(контекстные методы типов) за исключением матриц (возможно, в дальнейшем это тоже будет перенесено на чистыйVlang). - Поддержка
raygui. - Поддерживается сборка на Windows/Macos/Linux под Desktop (Windows/Macos/Linux) и Web (wasm).