Modifications
Abel heavily modifies Lua environment and replaces some of the Lua's standard library with its own implementation for great isolation and concurrency. It also removes "unsafe" functions to prevent potential sandbox escaping.
Some part of the Lua standard library is removed:
rawget
andrawset
: force metatable to be followedstring.dump
: provides access to function bytecodeload
andloadfile
: access to filesystemdebug
: violates memory safety modelos
: environment and file system accesspackage
: reimplemented and moved to internal tableio
: stdio, process and file system access
Some functions are re-implemented:
- Module imports has been redesigned. See Imports for more information.
- Error handling functions (including
error
,assert
andpcall
) allows HTTP errors to be thrown. See Error Handling for more information. getmetatable
now only accepts tables as argument.os.getenv
: currently always returnnil
, will return environment variables specified in config file in the future.
For file system-related functions in io
and os
, you can use those in fs
module instead. Note that APIs in fs
differs from those counterparts.