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