3 ms·
Redbean embraces and extends Lua. That's good since Lua by itself is the most austere language. For instance, here's Lua's standard library as shown by redbean
by jart 4y ago
Redbean embraces and extends Lua. That's good since Lua by itself is the most austere language. For instance, here's Lua's standard library as shown by redbean auto-completion: https://redbean.dev/img/lua-stdlib.png https://redbean.dev/img/lua-stdlib.png It only covers stdio functionality, since that's traditionally the only thing that's been portable across platforms. What we did with Cosmopolitan Libc was make POSIX as a whole portable to things like Windows. Redbean uses it to offer you a much larger breadth of system functionality across platforms https://redbean.dev/img/redbean-unixlib.png https://redbean.dev/img/redbean-unixlib.png so you can benefit from the modern features of your operating system. We've also added language features to Lua that we borrowed from C and Python. https://redbean.dev/#enhancements https://redbean.dev/#enhancements
If you want to move your code to a different Lua environment, then you can take our APIs with you. For instance, our enhancements to Lua are all open source and built on standardized interfaces. We even offer a 420kb build of just the lua command + our unix module, in the event you ever need just Lua but not the web server too. https://redbean.dev/lua.com https://redbean.dev/lua.com
- tepitoperrito 4y agoThanks a trillion. I'm basically hoping to use the code I write targeting redbean + lua + sqlite in an OpenResty (nginx + their set of lua modules) environment without too much mental overhead or god forbid, a parallel implementation. This confirms I'll be good to go!
- jart 4y agoYou will! Please note not all our APIs are present on OpenResty at the moment. However we'd be happy to see them be included. Most of our modules e.g. unix https://github.com/jart/cosmopolitan/blob/master/third_party/lua/lunix.c https://github.com/jart/cosmopolitan/blob/master/third_party... only really depend on Lua and POSIX which is available everywhere. You can build our modules in different environments. Obviously only the Cosmopolitan Libc environment is going to let the code run on six operating systems. But since our Lua contributions are based on standardized interfaces and libraries, if you use a different platform to build our code, then it will work there.