[cqueues] (LuaJIT, 5.2, 5.3) Coroutine scheduling using epoll, kqueue, and Solaris ports. No callbacks makes it interoperable with other event systems in C or Lua, as each cqueue scheduler provides a pollable descriptor. Includes light-weight condition variables for fast wakeup and switching among coroutines. Also includes bindings to non-blocking sockets, signaling, kernel-threading, and file change notifications. No dependencies except OpenSSL.
[levent] (5.2/5.3) - lua concurrency library based on libev, similar with gevent.
[Lanes] (5.1/5.2) - completely separate Lua states, one per thread, with asynchronous message passing
[LuaTask] (5.1) - multiple concurrent, independent Lua states, one per thread, with message passing
[mqlua] (5.1/5.2) - MqLua - Run multiple Lua states in POSIX threads and use ZeroMQ for communication.
[LuaExec] (5.1, 5.2, 5.3) - separate states, with asynchronous message passing based on abstract signals, recursive
[cqueues.thread] (5.1, LuaJIT, 5.2, 5.3) - Separate states using pthreads, with non-blocking, coroutine-based I/O in each state. Similar to N:M threading, except no shared data between OS threads.
[Effil] (5.1, 5.2, 5.3, LuaJIT) - thread safe tables + metatables, threads can be paused/resumed and canceled, FIFO channels. Threads in independent Lua states.
Preemptive
[lua-llthreads] - provides a very simple interface to pthreads. Each thread has an independent Lua state.
[Lua/APR multithreading] - multiple concurrent, independent Lua states, one per OS thread. Uses Apache APR.
Cooperative, message passing:
[ConcurrentLua] (5.1) - implements Erlang-style concurrency for Lua ("share-nothing asynchronous message-passing model" implemented with coroutines extended with message-passing primitives and also supporting distributed programming). See [Concurrency Oriented Programming in Lua] (M.S. thesis by Eleftherios Chatzimparmpas, 2007).