petrel Library¶
The petrel library is mainly used to configure and setup the petrel server from within your bootstrap function. It also provides some helper functions.
Synopsis¶
Usage in LUA:
function bootstrap()
petrel.add_lib_search_path("/opt/my_native_lib/path")
petrel.load_lib("my_native_lib")
petrel.add_route("/mypath", "mypath_handler")
petrel.add_directory_route("/myfiles", "/absolute/root/path")
end
function mypath_handler(req, res)
-- you might need to wait at some point
petrel.sleep_millis(1000)
return res
end
-
petrel.add_route(path, handler)¶ Setup a handler route.
Parameters: - path (string) – The path
- handler (string) – The function name of the LUA handler
If multiple path’s are overlapping, the most specific path handler gets executed. For example if you setup the following two routes:
petrel.add_route("/mypath", "mypath_handler") petrel.add_route("/mypath/subpath", "mysubpath_handler")
mysubpath_handler gets executed for requests like:
While mypath_handler gets executed for requests like:
-
petrel.add_directory_route(path, root)¶ Setup a static file delivery route.
Parameters: - path (string) – The http query path
- root (string) – The local root directory
-
petrel.add_lib_search_path(path)¶ Add a directory to the list of directories to be searched for a native library when calling
load_lib().Parameters: path (string) – The path
-
petrel.lib_search_path()¶ Return a colon separated list of directories that get searched for a native library when calling
load_lib().Returns: (string) - A string containing the search directories.
-
petrel.load_lib(name)¶ Load a native library and expose it into the LUA environment. A list of directories (the search_path) gets searched to find the shared object file (see
add_lib_search_path()andlib_search_path()).Parameters: name (string) – The name of the native library
-
petrel.sleep_nanos(N)¶ Let the current fiber sleep for N nanoseconds.
Parameters: N (integer) – The number of nanoseconds to sleep.
-
petrel.sleep_micros(N)¶ Let the current fiber sleep for N microseconds.
Parameters: N (integer) – The number of microseconds to sleep.
-
petrel.sleep_millis(N)¶ Let the current fiber sleep for N milliseconds.
Parameters: N (integer) – The number of milliseconds to sleep.