# luapi **Repository Path**: mirrors_LuaDist/luapi ## Basic Information - **Project Name**: luapi - **Description**: LuaPi: Concurrent programming made simple - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-09 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README LuaPi: Concurrent programming made simple ----- (C) 2007-2009 by Frederic Peschanski under the MIT Licence (see COPYRIGHT file) AUTHOR ------- Frederic Peschanski Assistant Professor University of Paris 6 - Pierre et Marie Curie France web: http://www-poleia.lip6.fr/~pesch OVERVIEW -------- LuaPi is a concise and efficient implementation of the Pi-calculus and broadcast-Pi semantics The metaphor employed is that of communicating systems. A LuaPi agent (there should generally be one LuaPi agent per lua instance) runs a set of LuaPi processes in parallel. Processes communicate through send/receive or broadcast primitives using communication channels. A higher-level and quite expressive choice construct allows to implement guarded commands, select-like behaviors and much more. From a practical point of view, LuaPi greatly simplifies the thinking and programming of concurrent behaviors, here in the Lua language. A more Lua-specific aspect is that LuaPi offers an expressive (but thin) layer above the coroutine mechanism so that programmers do not have to deal with the low-level stuff. It also provides an implicit cooperation model so that explicit yield are barely needed. From a scientific point of view, LuaPi is an outcome of our (long-term) research effort of providing integrated modeling, verification and programming techniques for day-to-day programmers (see LINKS). For example, LuaPi programs (well, the concurrent parts) can be converted to the Promela syntax and thus verified using Spin (see the doc/spin/ subdirectory for a tutorial example) INSTALLATION ------------ There is no installation procedure per-se. The only "difficult" part is in expanding the archive, which may look like the following one any Linux/Unix/Mingw/Cygwin/MacOSX environment: > tar xvzf LuaPi-.tar.gz To check the library, you can try the (few) provided examples: > source ./prepare.sh > lua examples/cs.lua ... > lua examples/rdv.lua ... > (etc.) Most examples are (or will be) thoroughly commented, and further documentation should happen at some point. CONTENTS -------- LuaPi-/ : main directory README : this file HISTORY : the history of versions COPYRIGHT : our rights (and few duties) VERSION : the current version AUTHORS : the authors of the software doc/ : tutorial and reference documentation lib/ : the library file(s) lib/pi.lua : the main LuaPi module examples/ : largely commented examples prepare.sh : to test LuaContractor (see INSTALLATION just above) DOCUMENTATION ------------- LuaPi tutorial: see doc/tutorial/LuaPiTut-.pdf CONTACT ------- Please use the project page on LuaForge (or author homepage) LINKS ----- - LuaPi home page: http://luapi.luaforge.net - Lua home page: http://www.lua.org - LuaForge projects: http://www.luaforge.net - Personal home page: http://www-poleia.lip6.fr/~pesch - research work: http://www-poleia.lip6.fr/~pesch/pithreads