LuaSQL
Database connectivity for the Lua programming language

## Overview

LuaSQL is a simple interface from Lua to a DBMS. It enables a Lua program to:

- Connect to ODBC, Oracle, MySQL, SQLite, DuckDB, Firebird and PostgreSQL databases;
- Execute arbitrary SQL statements;
- Retrieve results in a row-by-row cursor fashion.

LuaSQL is free software and uses the same license as Lua 5.1.

## Status

LuaSQL version 2.8.1 (for Lua 5.X) is now available for download. For more details on the features list please check the product history.

## Download

LuaSQL can be installed via LuaRocks, using the driver for your database of choice:

    luarocks install luasql-duckdb
    luarocks install luasql-firebird
    luarocks install luasql-mysql
    luarocks install luasql-oci8
    luarocks install luasql-odbc
    luarocks install luasql-postgres
    luarocks install luasql-sqlite
    luarocks install luasql-sqlite3

Source code for LuaSQL can be downloaded from its GitHub repository.

## Credits

#### LuaSQL 2.x

Version 2.8 introduces support for DuckDB (thanks to Geraldo Luiz de Carvalho Pereira Junior), adds improvemenents in the tests and corrects some bugs. 2.8.1 also adds support for a single connection string for ODBC driver. This version works with Lua versions 5.1, 5.2, 5.3, 5.4 and 5.5.

Version 2.7 introduces support for To-be-closed variables and all the Drivers are adapted to Lua version 5.4.
This was developed by Chaitanya Deshmukh (GSoC 2024) under the mentorship of Tomás Guisasola.

Version 2.5 incorporates support in MySQL driver for seeking in the result set.

Version 2.3.5 incorporates some bug corrections and small improvements (thanks to IR4T4 and tomatolog). This version works with Lua versions 5.1, 5.2 and 5.3.

Version 2.3 is just an adaptation of the code to work with Lua 5.0, 5.1 and 5.2.

Version 2.2 started a distributed development, with all project discussions happening through the Kepler's mailing list. New developers: Hisham Muhammad, Ignacio Burgueño, Luis Eduardo Jason Santos, Marc Nijdam, Mauricio Bomfim and Scott Morgan.

Version 2.1 and 2.0 were redesigned by Roberto Ierusalimschy, André Carregal and Tomás Guisasola as part of the Kepler Project. The implementation was coded by Tomás Guisasola, Eduardo Quintão, Thiago Ponte, Fabio Mascarenhas and Danilo Tuler, with many contributions from Michael Broughton, Tiago Dionizio, Leonardo Godinho, Pedro Maia, Klaus Ripke, Michael Roth and others.

#### LuaSQL 1.0

LuaSQL was originally designed by Pedro Miller Rabinovitch and Roberto Ierusalimschy. The first implementation was compatible with Lua 4.0a. Many modifications were made but not distributed by Diego Nehab (ODBC), Carlos Cassino, Tomás Guisasola and Eduardo Quintão (PostgreSQL).

LuaSQL development was sponsored by Fábrica Digital, FINEP and CNPq.

## Contact us

For more information please contact us. Comments are welcome!

You can also reach other Kepler developers and users on the Kepler Project mailing list.

Valid XHTML 1.0!