Hi List,
I have created a robust sandbox Lua C module that runs Lua code in a
safe environment while providing persistent state and industrial
strength safety in the event of sandbox state corruption (e.g.
infinite loop) [1] or [2]. I was motivated to create this sandbox for
use in my IRC bot on Freenode [3]. I believe Jim Whitehead II also
plans to use this for his lua_bot [4] as well.
A basic description: the sandbox uses a child process and shared
memory to facilitate this safe environment. The sandbox provides a
persistent state and periodically serializes the state using the
included serialize module so, in the event of state corruption (e.g.
infinite loop), we may reload the previous state in another sandbox.
A more exhaustive description can be found in the included README file.
[1] http://www.batbytes.com/sandbox-v1.0.tar.gz
[2] http://www.batbytes.com/sandbox-v1.0.zip
[3] http://lua-users.org/wiki/BatBot
[4] http://lua-users.org/wiki/LuaBot
Feedback Welcome and Enjoy,