This page collects a number of my Lua projects:

bit32 library backported for Lua 5.1.4

Here's a version of the bit32 library from Lua 5.2.0, fully back-ported to Lua 5.1.4:


(The bit32 library in Lua 5.2.1 is identical.) On my linux and Mac OS X x86 systems, it passes all the bitwise.lua tests from the Lua 5.2.0 test suite.


libwhy is a library for developing applications, using Lua to script GTK+ GUIs. It contains several custom GTK+ widgets which are useful for audio applications. The library may be easily used from C applications, or stand-alone scripts may be executed with the included ylua binary. Several example scripts are included.

libwhy is specialized for use as a platform for my audio and music applications. As a GTK+ binding, it is very incomplete, and lacks documentation. It is licensed under the GNU Lesser General Public License, version 2.1. Unless you need a very lightweight, LGPL-licensed GTK+ binding, I recommend you use lgi instead.

The most current version of libwhy can be had from github:

The latest release tarball is this:


Applications which use libwhy include:


ysdl is a lightweight SDL binding for Lua 5.1.x. Depending on what you are looking for, it may or may not be of interest to you.



In other words, if you're looking for a complete, hand-holding SDL binding, this isn't it. If you'd like a simple, lightweight SDL binding, and don't mind occasionally adding things on the C side, then ysdl might work for you.


ysdl source:

Example Applications:

Mike Pall's advanced readline patch

I am the maintainer of Mike Pall's advanced readline patch. This patch adds the following features to the existing readline support in Lua 5.x:

After applying the patch start Lua and try these (replace ~ with the TAB key):

fu~foo() ret~fa~end

The ~~ are just for demonstration purposes (io~s~o~w~ suffices, of course).

The patches have been verified to work with Lua 5.0, 5.0.2, 5.1, 5.2, and 5.3. Compatible readline libraries include GNU readline version from 2.2.1 through 6.2;; Mac OS X libedit 2.11; and NetBSD libedit 2.6.5 and 2.6.9.

You may download the patches here: (works for Lua 5.3.0 also)

Copyright © 2017 Sean Bolton. Created with Sausage Grinder.