standalone scripting platform for Lua
Find a file
2023-06-27 17:44:17 +12:00
external Initial import 2023-06-25 16:47:09 +12:00
lua-5.4 Lua makefile changes + remove Lua binaries 2023-06-27 17:44:17 +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
COPYING Add license file 2023-06-26 20:36:37 +12:00
csto.c Initial import 2023-06-25 16:47:09 +12:00
lcallisto.c Initial import 2023-06-25 16:47:09 +12:00
lcallisto.h Initial import 2023-06-25 16:47:09 +12:00
lcl.c Use strlcpy over strcpy in cl.parseopts 2023-06-27 12:43:27 +12:00
lcl.h Initial import 2023-06-25 16:47:09 +12:00
ldoc.css Initial import 2023-06-25 16:47:09 +12:00
lenvironment.c Remove libbsd support 2023-06-27 12:33:51 +12:00
lenvironment.h Initial import 2023-06-25 16:47:09 +12:00
lfile.c Remove libbsd support 2023-06-27 12:33:51 +12:00
lfile.h Initial import 2023-06-25 16:47:09 +12:00
ljson.c Initial import 2023-06-25 16:47:09 +12:00
ljson.h Initial import 2023-06-25 16:47:09 +12:00
lmath.c Initial import 2023-06-25 16:47:09 +12:00
lmath.h Initial import 2023-06-25 16:47:09 +12:00
los.c Initial import 2023-06-25 16:47:09 +12:00
los.h Initial import 2023-06-25 16:47:09 +12:00
lprocess.c Remove libbsd support 2023-06-27 12:33:51 +12:00
lprocess.h Initial import 2023-06-25 16:47:09 +12:00
lsocket.c Initial import 2023-06-25 16:47:09 +12:00
lsocket.h Initial import 2023-06-25 16:47:09 +12:00
Makefile Remove libbsd support 2023-06-27 12:33:51 +12:00
README.md Remove libbsd and libdl as a runtime dependency in readme 2023-06-27 12:35:21 +12:00
util.c Remove libbsd support 2023-06-27 12:33:51 +12:00
util.h Remove libbsd support 2023-06-27 12:33:51 +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

Currently Callisto only works on POSIX operating systems such as Linux and the BSDs (mainly because I don't have a machine running Windows).

Dependencies

To build Callisto, you'll need a C compiler and ar (a standard Unix archiving utility, should be included on every major Unix). 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.

At runtime you will need only these two libraries:

  • libm: basic math operations
  • libreadline: REPL history

Both of these are very common and should be already installed on your machine.

Installation

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

First, get the source code using git clone https://github.com/jtbx/callisto then in the newly created directory, run make to compile Callisto. The compiled executable will be named csto, and does not depend on any Lua .so C modules or Lua files.

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.