namespace.lua provides a way to deffer require of packages until accessing a table key.
luarocks install --server=http://luarocks.org/dev namespace.luaor include namespace.lua into our projects from this repository.
First require namespace.lua
local Namespace = require('namespace')Then create a new namespace
local mynamespace = Namespace()Assign strings to the keys you wish to defer requires on
mynamespace.foo = 'foo'
mynamespace.bar = 'bar'When you access 'foo' and 'bar' namespace.lua will require and cache them on the namespace
print(mynamespace.foo) --> calls require('foo') and returns value
print(mynamespace.bar) --> calls require('bar') and returns value