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