Lua Workshop 2014

registration · program · venue · visa · travel · accommodation · organization · participants · abstracts · tweets · instagram · videos

The Lua Workshop 2014 will be 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 workshop is open to everyone interested in Lua. There is no registration fee but participants are required to register because space is limited.

Arrangements for lunches, coffee-breaks, and dinners depend on the number of attendees and will be announced later.

The spoken language of the workshop is English. Translation of talks to Russian is not planned but translation of the after-talk questions from Russian-speaking attendees will be provided.

Please make your own visa, travel, and accommodation arrangements. Contact us if you need help or have special requirements.


Registrations are now closed.


We shall have a plenary talk by Roberto Ierusalimschy (Lua's chief architect) and several contributed talks. There will also be plenty of time for getting together and chatting about Lua.

If you'd like to speak at the workshop, please send a tentative title and a short abstract to the organizers with your registration.

The final program is shown below but it is still subject to last-minute changes.

Saturday, Sep 13th

10:00–10:50 Integers in Lua 5.3
Roberto Ierusalimschy
11:00–11:50 What's new in LuaRocks
Hisham Muhammad
12:00–12:50 Lua as a script language for industrial process design and optimisation with energy integration
Min-Jung Yoo
13:00–13:50 LuaOsmose: a Lua based framework to design and analysis integrated energy system
Renaud Kern
14:00–15:00 lunch
15:00–15:50 A little code goes a long way — cross-platform game development with Lua
Ivan Beliy
16:00–16:50 Game development with Corona SDK and Lua
Sergey Lalov
17:00–17:50 Typed Lua: an optional type system for Lua
Andre Murbach Maidl
18:00–18:30 Lua pitfalls
Dmitry Kotelnikov
18:40–19:30 A metaprogramming compiler for interactive ebooks (remote talk)
Enrico Colombini

Sunday, Sep 14th

10:00–10:50 Lua as the common language for the internet of things
André Riesberg
11:00–11:50 Homemade load balancing with nginx + Lua
Andrey Kononov
12:00–12:50 Lua as business logic language in high load application
Ilya Martynov
13:00–13:50 Sailor — a web MVC framework in Lua
Etiene Dalcol
14:00–15:00 lunch
15:00–15:50 Lua in Low-Level Programming
Javier Guerra Giraldez
16:00–16:50 lubyk, a set of Lua libraries for live arts
Gaspard Bucher
17:00–17:50 Lua binding for C++11
Nikolay Zykov
18:00–18:50 Q&A session


The workshop will be held at

Mail.Ru Group office building
Leningradsky prospekt 39, corp. 79

See a map.


Make sure to check whether you need a visa to enter Russia. Getting a visa may take some time. It is better to start early.

Way to Russia seems to be a good guide on getting visas. (That guide and visa company are not endorsed by the organizers.)

Invitation letters for the workshop attendees and speakers are available from the organizers, upon request. Please allow for some time to get them made.


There are three international airports in Moscow. Depending on where you are, there are good chances that you'll be able to arrange a direct flight.

If your flight arrives from (approximately) 04:00 AM to 00:00 AM, the best way to get to the city is to take a fast and comfortable Aeroexpress express train (trains from 05:00 AM to 01:00 AM, depending on the airport). Please double-check the schedule.

If you arrive at night, the best way is to arrange a taxi. Please use the official airport taxi service. Avoid private drivers. You may also use online or mobile taxi services, like Wheely, GetTaxi, or Yandex.Taxi (but using Economic class cars with Yandex.Taxi is not recommended).

Your hotel may also provide an airport transfer service, free of charge in some hotels. Make sure to ask them.

Once in the city, the best way to get around is by the extensive Moscow Subway network. Car traffic in Moscow can be very congested, especially on business days. If you rent a car or hire a taxi, you may spend a significant time in a traffic jam. At night and on weekends, the traffic is usually bearable, but keep in mind that suburban traffic (for instance, to and from an airport) is often very bad on weekends with good weather.


There are a great many hotels and hostels to pick from in Moscow. Use a service like to find one you like.

The workshop venue is within five minutes of walk from the Moscow subway station named "Aeroport" (even though there is no actual airport there). The Moscow subway network is extensive and reliable (and very beautiful) and usually not too jammed with passengers on weekends. You may use this service to find out approximate travel times from your hotel.


The workshop is organized by Alexander Gladysh and the Lua team, and the sponsors below.

The organizers can be contacted at

Sponsored by     MailRu         LogicEditor         IPONWEB



Integers in Lua 5.3 slides video
Roberto Ierusalimschy (PUC-Rio)

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

What's new in LuaRocks slides video
Hisham Muhammad (LuaRocks and PUC-Rio)

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 slides video
Min-Jung Yoo (EPFL)

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 slides video
Renaud Kern (EPFL)

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 metaprogramming compiler for interactive ebooks slides video
Enrico Colombini (freelance author)

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:

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

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 slides video
Javier Guerra Giraldez (Snabb GmbH)

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.

lubyk, a set of Lua libraries for live arts slides video
Gaspard Bucher (teti)

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

Typed Lua: an optional type system for Lua slides video
Andre Murbach Maidl (PUC-Rio)

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.

Game development with Corona SDK and Lua slides video
Sergey Lalov (Spiral Code Studio)

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.

Lua as business logic language in high load application slides video
Ilya Martynov (IPONWEB)

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.

Lua pitfalls slides video
Dmitry Kotelnikov (IPONWEB)

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.

Lua binding for C++11 slides video
Nikolay Zykov (TSNIImash)

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.

Homemade load balancing with nginx + Lua slides video
Andrey Kononov and Anton Shcherbinin (IPONWEB)

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

Sailor — a web MVC framework in Lua slides video
Etiene Dalcol (PUC-Rio and ENSTA Bretagne)

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

A little code goes a long way — cross-platform game development with Lua slides video
Ivan Beliy (Marmalade)

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.

Last update: Sat Feb 14 01:11:40 BRST 2015