6 – Standard Libraries

The standard Lua libraries provide useful functions that are implemented directly through the C API. Some of these functions provide essential services to the language (e.g., type and getmetatable); others provide access to "outside" services (e.g., I/O); and others could be implemented in Lua itself, but are quite useful or have critical performance requirements that deserve an implementation in C (e.g., table.sort).

All libraries are implemented through the official C API and are provided as separate C modules. Currently, Lua has the following standard libraries:

  • basic library (§6.1);
  • coroutine library (§6.2);
  • package library (§6.3);
  • string manipulation (§6.4);
  • basic UTF-8 support (§6.5);
  • table manipulation (§6.6);
  • mathematical functions (§6.7) (sin, log, etc.);
  • input and output (§6.8);
  • operating system facilities (§6.9);
  • debug facilities (§6.10).

Except for the basic and the package libraries, each library provides all its functions as fields of a global table or as methods of its objects.

To have access to these libraries, the C host program should call the luaL_openlibs function, which opens all standard libraries. Alternatively, the host program can open them individually by using luaL_requiref to call luaopen_base (for the basic library), luaopen_package (for the package library), luaopen_coroutine (for the coroutine library), luaopen_string (for the string library), luaopen_utf8 (for the UTF8 library), luaopen_table (for the table library), luaopen_math (for the mathematical library), luaopen_io (for the I/O library), luaopen_os (for the operating system library), and luaopen_debug (for the debug library). These functions are declared in lualib.h.

tostring()
  • References/Lua/Lua/Standard Libraries/Basic Functions

tostring (v)string.format If the metatable of v

2025-01-10 15:47:30
debug.setlocal()
  • References/Lua/Lua/Standard Libraries/The Debug Library

debug.setlocal ([thread,] level, local, value) This function assigns the value value to the local variable with index local of the function at level

2025-01-10 15:47:30
debug.getinfo()
  • References/Lua/Lua/Standard Libraries/The Debug Library

debug.getinfo ([thread,] f [, what]) Returns a table with information about a function. You can give the function directly or you can give a number as the value of f

2025-01-10 15:47:30
string.format()
  • References/Lua/Lua/Standard Libraries/String Manipulation

string.format (formatstring, ···) Returns a formatted version of its variable number of arguments following the description given in its first argument (which must be a string)

2025-01-10 15:47:30
type()
  • References/Lua/Lua/Standard Libraries/Basic Functions

type (v)nilnilnumberstringbooleantablefunctionthreaduserdata

2025-01-10 15:47:30
utf8.codes()
  • References/Lua/Lua/Standard Libraries/UTF-8 Support

utf8.codes (s) Returns values so that the construction for p, c in utf8.codes(s) do body end will iterate over all characters

2025-01-10 15:47:30
math.rad()
  • References/Lua/Lua/Standard Libraries/Mathematical Functions

math.rad (x) Converts the angle x from degrees to radians.

2025-01-10 15:47:30
math.abs()
  • References/Lua/Lua/Standard Libraries/Mathematical Functions

math.abs (x) Returns the absolute value of x. (integer/float)

2025-01-10 15:47:30
string.len()
  • References/Lua/Lua/Standard Libraries/String Manipulation

string.len (s)"""a\000bc\000"

2025-01-10 15:47:30
debug.debug()
  • References/Lua/Lua/Standard Libraries/The Debug Library

debug.debug () Enters an interactive mode with the user, running each string that the user enters. Using simple commands and other debug facilities, the user can inspect global

2025-01-10 15:47:30