Lua.js (caharkness/luajs-interop on GitHub)"A bare-bones implementation of C Lua and Duktape JavaScript interoperability for future projects on the Nintendo Switch via libnx."
What is it?
It's a project I started to help teach myself C/C++ programming while creating a platform for my up-and-coming project to run on. It's a a project worth looking at if you are either a new or experienced programmer in other languages looking to develop Nintendo Switch homebrew.
What makes it special?
This project demonstrates a few characteristics of larger, more sophisticated C projects in just a handful amount of files. Here's a list of things to look out for:
- Inclusion of fully open-source software's source code (such as Lua and its entirety)
- Project level source code organization (keeping your code separate from Lua)
- C Language level code organization (refactoring your code into separate, relevantly named .c and .h files)
- Interoperability between C Language and scripting langauges (write code in C, Lua, & JavaScript and invoke functions defined in one language from another)
- Working example of a Lambda "function literals" in C (the function is defined during execution)
- Reading whole files from romfs:/ (a demonstration of libnx and importance of convenience functions)
- Concise examples of source and header relationship (reducing clutter, redundancy, and compiler confusion)
Lua.js, although it compiles to .nro, is not homebrew ready for the consumer. It is also not a fully-fledged interpreter that can translate existing Lua and JavaScript-based games into Nintendo Switch experiences... yet.