standalone scripting platform for Lua
Find a file
2023-07-24 12:09:37 +12:00
external Change 'ar rcu' to 'ar cr' 2023-07-18 12:56:02 +12:00
lua-5.4 Change 'ar rcu' to 'ar cr' 2023-07-18 12:56:02 +12:00
.editorconfig Add .editorconfig 2023-07-01 09:57:28 +12:00
.gitignore Add lua and luac to .gitignore 2023-06-27 16:40:23 +12:00
config.ld Remove test.lua from config.ld and add it to gitignore 2023-06-26 08:05:38 +12:00
config.mk Remove hard dependency on readline, split makefile config into config.mk 2023-07-18 12:38:03 +12:00
COPYING Add license file 2023-06-26 20:36:37 +12:00
csto.c Change include in csto.c, revert LUA_INIT_VAR and change slogan 2023-07-24 12:09:17 +12:00
lcallisto.c Add function callisto_openall(lua_State *) 2023-07-08 18:46:09 +12:00
lcallisto.h Define LUA_USE_POSIX 2023-07-24 12:09:37 +12:00
lcl.c Use luaL_argerror over luaL_error in cl.parseopts 2023-07-09 21:43:04 +12:00
ldoc.css Minify CSS reset section 2023-07-18 10:14:46 +12:00
lenviron.c Rename callistoopen_* functions to luaopen_* 2023-07-08 18:35:59 +12:00
lextra.c Rename callistoopen_* functions to luaopen_* 2023-07-08 18:35:59 +12:00
lfile.c Remove warnings from lcl.c and lfile.c by fixing some issues 2023-07-09 16:19:37 +12:00
ljson.c State meaning of an extremely sparse array in json documentation 2023-07-24 12:00:30 +12:00
lprocess.c Rename callistoopen_* functions to luaopen_* 2023-07-08 18:35:59 +12:00
lsocket.c Rename callistoopen_* functions to luaopen_* 2023-07-08 18:35:59 +12:00
Makefile Remove hard dependency on readline, split makefile config into config.mk 2023-07-18 12:38:03 +12:00
README.md Define LUA_USE_POSIX 2023-07-24 12:09:37 +12:00
shell.nix Add ldoc to shell.nix 2023-07-23 12:46:42 +12:00
util.c Add credit to OpenBSD for strlcat and strlcpy 2023-07-01 09:53:08 +12:00
util.h Add byte and ubyte #defines in util.h 2023-07-09 21:16:53 +12:00

Callisto

A featureful runtime for Lua 5.4, written in C99 using POSIX APIs.

Callisto is an extension to Lua that adds commonly-needed functions and features to the language, and includes a file library to manage and manipulate files, a process library to find active processes and manipulate signals, a socket and networking library using LuaSocket, and a JSON manipulation library among many more.

Before I made Callisto, I usually had to rely on three libraries: luaposix for basic file manipulation and other routines, lua-cjson for JSON parsing support and LuaSocket for networking.

First and foremost, Callisto tries to satisfy these requirements:

  • an all-in-one zero-dependencies library for Lua that includes most features people would need, out of the box
  • a library that works and integrates well with Lua and its standard library, and is easy to use

Callisto only works on POSIX-compliant operating systems such as Linux and the BSDs. There is no plan for a Windows port.

Dependencies

To build Callisto, you'll need nothing but a C compiler. The default C compiler is cc which is usually a symbolic link to your system's default C compiler. This should be gcc on Linux, and clang on most of the BSDs. If cc doesn't exist on your system, change the CC variable in the Makefile to your desired C compiler.

Callisto has zero runtime dependencies, unless you built it with support for GNU libreadline. Lua 5.4 is statically linked in.

Installation

Callisto is distributed as source-only, but don't worry, it's not hard to compile.

First, get the source code using one of the tarballs found in the Releases page. Untar it then run make to compile Callisto. The compiled executable will be named csto.

To install csto (the Callisto standalone executable) and libcallisto.so (the Callisto shared library), run make install as the root user in the source code directory.