“LuaとLuaJITの概要と、LuaJITのLua 5.2との互換性について(2014年6月時点)” の続きとして、Luaの言語バインディングについてを扱う。
LuaはC/C++言語のプログラムに組み込んで使うという形が想定されていることなどもあって、単独で呼び出せる機能はそれほど多くはなく、基本的なファイル入出力や数学関数,文字列処理や各種データ型に関係した処理,OSの幾つかの限られたファイル操作や情報取得などしかできない。
別途言語バインディングのパッケージをインストールすることでLuaから扱えるライブラリ(呼び出せる機能)を増やすことはできるが、Pythonなど他の言語向けのバインディングと比べるとあまり数は多くない。また、Lua の最新バージョン系統へまだ対応していないものも見られる(バインディングのパッケージ自体が対応済みでもディストリのパッケージが対応していないものも含む)。ただ、LuaJITを用いてプログラムを動かす場合はLua 5.1向けのものが使えるので、5.1系に対応していればそれはLuaJITからなら使える。
有用と思われる言語バインディングは
など。
LGIという言語バインディングはGObject Introspection対応の多数のライブラリをLuaから利用可能にし(PythonにおけるPyGObjectに相当)、Luaの新しいバージョンにも対応している。Debian/Ubuntuでのパッケージ名はlua-lgi
。下は対応ライブラリの例。
LGIを使用する場合、別途GObject Introspectionの.typelibファイルを提供するパッケージ(Debian/Ubuntuではgir[バージョン]-[ライブラリ名など]
形式の名前のパッケージ・例えばgir1.2-gtk-3.0
)が必要になる。