Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Lua Application Programming Helper Libraries
branch: master
Failed to load latest commit information.
docs new file: ../ColorsHollasch.lua
tests modified: MemoryStream.lua
BinaryStream.lua new file: TLS.lua
BitBang.lua new file: c99_types.lua
CRC32.lua modified: CRC32.lua
CVec.lua Changes to stream:ReadLine()
ColorSpace.lua new file: TLS.lua
ColorsHollasch.lua modified: ConvertHollasch.lua
ColorsResene.lua new file: ../ColorsHollasch.lua
ColorsSGI.lua new file: ../ColorsHollasch.lua
FileStream.lua Added GetLength() to streams interface
Hashes.lua Added CVec
LICENSE.txt modified: LICENSE.txt
LuaState.lua deleted: ../ColorsHollasch.lua
MD5.lua Fixed strcpy
MemoryStream.lua modified: MemoryStream.lua
Pixel.lua new file: TLS.lua modified: MemoryStream.lua
TLS.lua modified: TLS.lua
Vector.lua new file: c99_types.lua
aestable.lua new file: ../ColorsHollasch.lua
ascii.lua Added bintohex and hextobin to stringzutils
bencode.lua Changes to MemoryStream
c99_types.lua modified: ../c99_types.lua
cctype.lua new file: c99_types.lua
ffi_stack.lua Changes to MemoryStream
httpheaders.lua Added httpheaders.lua
limits.lua Added ascii.lua to handle tokens for ASCII
lua_ffi.lua modified: LICENSE.txt
luxl.lua modified: MemoryStream.lua
maths.lua new file: TLS.lua
memutils.lua new file: c99_types.lua
mime.lua modified: ColorsHollasch.lua
mimetypes.lua Added mime utilities
printutils.lua new file: TLS.lua
sha2.lua new file: ../ColorsHollasch.lua
stdc.lua new file: c99_types.lua
stream.lua Changes to stream:ReadLine()
stringutils.lua new file: ../SGIColors.lua
stringzutils.lua Faster more compact CRC32
strtoul.lua Added luxl - LUa Xml Lexer
utf.lua Combined utf-8 and utf-16 into utf file


Lua Application Programming Helper Libraries

This is a repository of things I have found to be useful while programming in LuaJIT.

In most cases, the routines use features that are very specific to the LuaJIT variant of Lua. In particular, the LuaJIT FFI feature is heavily used. This gives many of the routines a fairly familiar 'C' look and feel, but they take on some of the better characteristics of Lua, namely memory management.

This set of functions is constantly evolving as LuaJIT itself improves, as well as my own knowledge of how best to use it.

Current: Works against LUAJIT git HEAD as of 25/09/2012


This file contains a table of the ASCII character set, with numeric values and descriptions. There are routines to create constant values from the table.


Implementation of the bencode format, which is used to encode/decode torrent files.


A 'class' that can deal with reading and writing of binary values from/to a stream. You can configure the stream to deal with a big or little endian source.


Lowest level bit twiddling. Builds upon the bitops allowing the getting/setting of bit values within a larger array of values.


Helper support for types typically found in stdint.h


Implementation of the isxxx() character classification functions typically found in the libc libraries. These routines operate on numbers, and return boolean values.


Implementation of a CRC32 routine


A simple Lua table containing HTTP headers. The table contains information as to whether the header is used for requests, responses, or both. This simple table can be used directly, or turned into another form, depending on your requirements.


Values for various limits on numeric values


Implementation of very low level XML lexer/parser. This is not a conformant validating XML parser, but it's enough to get the job done on typical .xml configuration files, and many data streams.

This implementation does no memory allocations. It returns pointers and sizes as a result of the lexing activities.


Implementation of the MD5 hash algorithm


Implementation of a streaming interface over a chunk of memory


contains several routines that have C equivalents, such as memset, memcpy, memcmp, memchr, memmove. Also contains a few convenience functions related to dealing with chunks of memory.


Contains a table and function that maps between a file extension and the appropriate mime type.


A simple Lua table which contains mime type information.


Contains a set of functions that deal with null terminated strings. All the typical security hole opening functions such as strcpy, strcmp are there, as well as their marginally more secure counterparts such as strlcpy, and strlcat.


Turns a string value into a number value. Operates on a pointer to a string value, so it does not require the source to be a Lua String.

Something went wrong with that request. Please try again.