require()
allows us to add functionality by loading C libraries at runtime (given that we have compiled with dynamic linking, refer to Chapter 1). We can already do some stuff with the standard distribution, but there is no support for advanced file system operation, databases, imaging, network programming, and so on. The following libraries should fill the biggest gaps:
LuaFileSystem (http://keplerproject.org/luafilesystem): This library is of interest if we want to manage files from within Lua. It contains functions to iterate through directories, work with symbolic links, and file locking.
LuaSQL (http://keplerproject.org/luasql): This connects to and works with a number of SQL databases, including Oracle, MySQL, SQLite and PostgreSQL.
MD5 (http://www.keplerproject.org/md5/): This is another useful library from project Kepler, adding an often-used hash function to our repertoire.
LuaSocket (http://www.tecgraf.puc-rio.br/~diego/professional/luasocket): This gives Lua...