xref: /freebsd/contrib/lutok/README (revision c697fb7f7cc9bedc5beee44d35b771c4e87b335a)
1*c697fb7fSBrooks DavisLutok is a lightweight C++ API library for Lua.
2*c697fb7fSBrooks Davis
3*c697fb7fSBrooks DavisLutok provides thin C++ wrappers around the Lua C API to ease the
4*c697fb7fSBrooks Davisinteraction between C++ and Lua.  These wrappers make intensive use of
5*c697fb7fSBrooks DavisRAII to prevent resource leakage, expose C++-friendly data types, report
6*c697fb7fSBrooks Daviserrors by means of exceptions and ensure that the Lua stack is always
7*c697fb7fSBrooks Davisleft untouched in the face of errors.  The library also provides a small
8*c697fb7fSBrooks Davissubset of miscellaneous utility functions built on top of the wrappers.
9*c697fb7fSBrooks Davis
10*c697fb7fSBrooks DavisLutok focuses on providing a clean and safe C++ interface; the drawback
11*c697fb7fSBrooks Davisis that it is not suitable for performance-critical environments.  In
12*c697fb7fSBrooks Davisorder to implement error-safe C++ wrappers on top of a Lua C binary
13*c697fb7fSBrooks Davislibrary, Lutok adds several layers or abstraction and error checking
14*c697fb7fSBrooks Davisthat go against the original spirit of the Lua C API and thus degrade
15*c697fb7fSBrooks Davisperformance.
16*c697fb7fSBrooks Davis
17*c697fb7fSBrooks DavisFor further information on the contents of this distribution file,
18*c697fb7fSBrooks Davisplease refer to the following other documents:
19*c697fb7fSBrooks Davis
20*c697fb7fSBrooks Davis* AUTHORS: List of authors and contributors to this project.
21*c697fb7fSBrooks Davis* COPYING: License information.
22*c697fb7fSBrooks Davis* INSTALL: Compilation and installation instructions.
23*c697fb7fSBrooks Davis* NEWS: List of major changes between formal releases.
24*c697fb7fSBrooks Davis
25*c697fb7fSBrooks DavisFor general project information, please visit:
26*c697fb7fSBrooks Davis
27*c697fb7fSBrooks Davis    https://github.com/jmmv/lutok/
28