Skip to content
master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
ch1
 
 
ch2
 
 
ch3
 
 
ch4
 
 
ch5
 
 
ch6
 
 
img
 
 
lua
 
 
 
 
 
 
 
 

Creating Solid APIs with Lua

Lua and C code examples that illustrate C/Lua integration.

These code samples were written as companions to the O'Reilly book Creating Solid APIs with Lua. The samples are built up chapter-by-chapter, and focus on a particular game called EatyGuy, which looks like this:

This game is text-based in order to enable simple graphics that work across platforms yet don't require any libraries. The code has runs on macOS, Ubuntu, and Windows.

Run make from the root repo directory to build all the examples. The built products are created in each chapter's directory (ch1, ch2, and so on). The game examples can be run by, for example, in ch6, typing the command ./eatyguy10 (each chapter has its own version of the game). Use the arrow keys to move your character around, and press q to quit.

Many more details are provided in the book! :)

Table of Contents

This section outlines the flow of content across the chapters of the book and corresponding subdirectories of this repo. Many of these topics center on learning Lua's C API.

  • Chapter 1 Running a Lua Script from C

    This chapter covers acquiring Lua's source as well as running Lua scripts from C.

  • Chapter 2 Calling C from Lua

    Writing C functions that Lua can call.

  • Chapter 3 Using Lua Values in C

    Manipulating Lua primitives and tables from C.

  • Chapter 4 Making Your API Classy

    A review of Lua classes, and how C works with Lua's userdata type to make safe, class-like objects in Lua.

  • Chapter 5 Detecting Errors

    Working with Lua errors (similar to exceptions) from C; making it easier to notice certain common mistakes.

  • Chapter 6 Sandboxing User Scripts

    Limiting the API and resource access of user scripts, including fine-grained constraints on CPU and memory consumption.

About

Sample Lua and C code to help you learn how to write Lua-based APIs.

Resources

Releases

No releases published

Packages

No packages published