What is ocaml-lua

OCaml-lua provides bindings to the Lua programming language. Lua is a scripting language particularly useful when you need to embed a language in your application.

This project provides the bindings required to embed Lua.

More information about Lua
lua logo


Lua is a powerful, light-weight programming language designed for extending applications. It provides a good general purpose programming language to replace DSL that don't really need to be specific.

This library provides bindings to Lua API which allows the application to exchange data with Lua programs and also to extend Lua with OCaml functions.

This is the OCaml complete binding of the Lua Application Program Interface as described in the official documentation.

In this moment only the version 5.1.x is supported, while 5.2.x is on my TODO list. In general my plan is to support newest versions, but not the oldest ones.

LuaJIT 2.0.0 for Lua 5.1 is also supported.

Intended audience

This library is intended to be useful to OCaml developers needing a dynamic language to be included in their projects, for configuration or customization purposes. Instead of reinventing yet another DSL, one should consider using an existing programming language and Lua is in my opinion the perfect companion of a statically typed language like OCaml.

In a few lines of code you can create a Lua interpreter and run a Lua program inside it. You can provide the Lua state with library functions written in OCaml and available to the Lua program.

More informations about Lua can be found on the documentation page.

My advice is to read the book "Programming in Lua", written by the author of the language, Roberto Ierusalimschy.

Where to find everything

The homepage of the project is hosted on OCaml Forge.

The complete library reference (ocamldoc generated) is here.

Source tarball are on the download page on OCaml Forge.

The official GIT repository is here.

Bug reports and feature requests are on my page on GitHub.

See the file COPYING.txt for copying conditions. See the file AUTHORS.txt for credits.

Building and installing the library

To build the library the following requirements are mandatory:

The library can optionally be compiled and linked with LuaJIT. In this case an additional requirement is:

To compile use the usual spell:

  1. ./configure
    check the options of the configure script with --help, and pay particular attention to --docdir which defaults to /usr/local/share/doc/ocaml-lua
  2. make
  3. make doc
  4. make install