Conference materials are available.

All workshop talks were recorded. See video footage and slides in talks section, supplemental videos in Workshop Chronology.

About Workshop

The Lua Workshop 2014 was held in  Moscow, Russia, on  September 13–14, 2014.

As in previous workshops (2005, 2006, 2008, 2009, 2011, 2012, 2013), the main goal of the workshop is to allow the Lua community to get together and meet in person and talk about the Lua language, its uses, and its implementation.

The spoken language of the workshop was English.

Workshop Chronology

 Video Report

 Interview with the Organizers

 Interview with Roberto Ierusalimschy

 Interview with Hisham Muhammad


Saturday, September 13th

9:00—9:50 Registration and badge pick up
10:00—10:50 Integers in Lua 5.3 Roberto Ierusalimschy
11:00—11:50 What's new in LuaRocks Hisham Muhammad
14:00—15:00  Lunch
18:40—19:30 A metaprogramming compiler for interactive ebooks Enrico Colombini (remote talk)

Sunday, September 14th

11:00—11:50 Lua in Low-Level Programming Javier Guerra Giraldez
13:00—13:50 Sailor — a web MVC framework in Lua Etiene Dalcol
14:00—15:00  Lunch
15:00—15:50 Homemade load balancing with nginx + Lua Andrey Kononov and Anton Shcherbinin
16:00—16:50 Lubyk, a set of Lua libraries for live arts Gaspard Bucher
17:00—17:50 Lua binding for С++11 Nikolay Zykov
18:00—18:50 Q&A session



Abstracts and footage

  Integers in Lua 5.3
Roberto Ierusalimschy (PUC-Rio)
 Slides  Video

In this talk we will discuss why and how Lua 5.3 will bring integer numbers.

  What's new in LuaRocks
Hisham Muhammad (LuaRocks and PUC-Rio)
 Slides  Video

This talk will discuss the latest developments in the world of LuaRocks, the package manager for Lua modules. It will start by introducing the LuaRocks tool, for those who are not familiar with it. Then, I will present what has changed in this past year: the move to a open repository, automation of the upload process and the latest efforts in making the tool more flexible. A revision of the format for specification files (rockspecs) has been long overdue, and in this talk we'll discuss the changes needed to make the format fully extensible.

  Lua as a script language for industrial process design and optimisation with energy integration
Min-Jung Yoo (EPFL)
 Slides  Video

Currently we are developing an open source platform for Energy Systems Integration for industrial processes using Lua. The purpose of the project is to provide a generic modeling and optimization platform for industrial process integration and their optimization in terms of energy efficiencies and environmental issues. Already at our laboratory, there was a platform, developed on MatLab, for the purpose of Energy Integration. By developing a new generation of Energy Systems Integration platform in Lua, we are targeting the range of integration towards GIS Data integration and LCA issues. The presentation will mainly concern our project content and also our challenge in launching a new doctoral course in Lua.

  LuaOsmose: a Lua based framework to design and analysis integrated energy system
Renaud Kern (EPFL)
 Slides  Video

This talk will focus on technical aspects of building a complete Lua framework for scientific users with no or few programming skills. We will cover the strengths of Lua in this project such as, small footprint, speed, painless DSL, quick prototyping, glue language with other system components. We will also discuss some of the weaknesses that we've encountered and how we solved them.

  A little code goes a long way — Cross-platform Game Development with Lua
Ivan Beliy (Marmalade)
 Slides  Video

Marmalade Engineer Ivan Beliy will talk through the simple easy steps to take a game written in Lua to a whole host of mobile devices with Marmalade Quick. He will also delve into the extensibility available in Lua with open source access to the Marmalade Ecosystem and overlap with the Cocos2D Ecosystem, using live demos and examples.

   Game development with Corona SDK and Lua
Sergey Lalov (Spiral Code Studio)
 Slides  Video

Lua is often used as an extension for games written in C/C++ or other "lower level" language, however now some game engines allow developing entirely in Lua. Corona SDK is one of such frameworks. This approach has proven to be fast to develop, clean to read and easy to maintain with almost no performance drawback. From this talk you will know more about Lua usage for game development, how to write clean code and make the best of Lua.

  Typed Lua: An Optional Type System for Lua
Andre Murbach Maidl (PUC-Rio)
 Slides  Video

Dynamically typed languages such as Lua trade flexibility and ease of use for safety, while statically typed languages prioritize the early detection of bugs, and provide a better framework for structuring large programs. The idea of optional typing is to combine the two approaches in the same language: the programmer can begin the development with dynamic types, and migrate to static types as the program matures. The challenge is to design a type system that feels natural to the programmer that is used to programming in a dynamic language. This talk presents the initial design of Typed Lua, an optionally-typed extension to Lua, and through code examples shows how Typed Lua handles some of the idioms that Lua programmers are used to, bringing static type safety to these idioms.

  Lua pitfalls
Dmitry Kotelnikov (IPONWEB)
 Slides  Video

This report is about various pitfalls somehow related to Lua. We know them firsthand because dozen of our developers use Lua to implement business logic. Even obvious traps may hit the wallet and the psyche. Additionally possible workarounds will be given. The report will contain a list of peculiarities of the Lua, missed that you can get a bug. Mainly this will be well-known things, such as nil in the table or global variables. Everything I tell you is not a revelation. All this can be seen in the pages of documentation, on the internet or learn from your colleagues. But for many it's just knowledge, not experience. The most reliable way to learn not to make mistakes is to make every mistake at least once. Preferably with serious consequences -) And for most of the knowledge we really had to pay. So for us it is truly an experience. I will try to share our experience with you, and I hope that these traps will cost you less.

  A metaprogramming compiler for interactive ebooks
Enrico Colombini (freelance author)
 Slides  Video

The Medusa compiler takes a book source including Lua code, e.g. for puzzles or exercises, and generates a (possibly very large) set of immutable hyperlinked pages. This 'printed once and for all' set of pages mimicks a runtime program behaving like the original code; the author can thus give the impression of complex dynamic behaviour (similar to the logic in modern graphic adventure games) in a static ebook, printed book or static Web site. Some topics of the talk are:
  • From ancient gamebooks to static ebooks: how to represent variables and state.
  • From an old runtime Javascript framework (Idra) to a metaprogramming Lua compiler (Medusa).
  • Compiler structure and design choices; using Lua environments to efficiently handle page states.

  Lua as the common language for the internet of things
André Riesberg (Ing. Büro Riesberg GmbH and NOGS GmbH)
 Slides  Video

The talk is about how to make smart objects really smart. It displays an approach of dynamic coding as a communication principle. The report proposes a new IoT framework, called Nogs, which does not only help to simplify communication but also addresses various challenges of embedded software development.

  Lua in Low-Level Programming
Javier Guerra Giraldez (Snabb GmbH)
 Slides  Video

Snabb Switch is an unusual project in many ways, over 90% written in Lua, it has very tight performance goals, it's own 10Gbit Ethernet driver, and deep collaboration with virtual machine networking. This talk first presents the niche, goals and overall structure of Snabb Switch, then shares some of the lessons learned to make most of LuaJIT: how the FFI makes low level programming possible, how the performance goals were met and where the dynamic nature of Lua was a challenge and where it wasn't.

  Lua as business logic language in high load application
Ilya Martynov (IPONWEB)
 Slides  Video

This report covers our experience building custom HTTP web server used for the delivery of internet advertising. The application design has as one goals finding the right balance between high performance and ease of development. To achieve this goal we are using Lua as a business logic scripting language embedded into C++ application. The report tries to explain how and why we use Lua and how the choice of Lua affects architecture of the application.

  Sailor - a web MVC framework in Lua
Etiene Dalcol (PUC-Rio and ENSTA Bretagne)
 Slides  Video

Lua's use in web tools, despite its great potential, is not yet widespread. Having had experience as a web programmer, and aiming to learn more about this language, I started a marathon that produced an MVC framework completely written in Lua, called Sailor. This talk presents the beginnings of Sailor, a comparison with other existing tools, the current stage of Sailor's development today and intends to start a debate on what we can do to spread the idea of using Lua more in web development. See and sailor at

  Homemade load balancing with nginx + Lua
Andrey Kononov and Anton Shcherbinin (IPONWEB)
 Slides  Video

How to consistently divert users to backends based on users' IP addresses, cookies, phase of the Moon, you name it.

  lubyk, a set of Lua libraries for live arts
Gaspard Bucher (teti)
 Slides  Video

Using Lua for event scheduling, live coding, midi transformation, 3D simulation, OpenGL shaders, etc.

  Lua binding for C++11
Nikolay Zykov (TSNIImash)
 Slides  Video

An open-source library that uses C++11-powered template metaprogramming to create low-overhead object-oriented Lua binding. It provides automatic stack management, natural-form expressions including calls and indexation, seamless value traversal, full support for multiple value returns and automatic function wrapping.

  Q&A session

  Gopher on the Moon: Bonus talk from Lua Workshop day 2

  Intro to the Tarantool: Lua Workshop 2014, second bonus talk


The Workshop was organized by Alexander Gladysh and the Lua team, and the sponsors below.

Lua logo

Sponsored by

General Sponsor

Information Sponsor

Gold Sponsor

Contact Us