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