What do Adobe Photoshop Lightroom, Angry Birds, Apache HTTP Server, Apache Traffic Server, the Firefox web browser, MediaWiki, and World of Warcraft all have in common? They are all extensible using the cross-platform Lua programming language, winner of the 2011 Game Developer Magazine Front Line Award because:
Lua has become an extremely popular programming language, so much so that it's achieved a critical mass of developers in the game industry, meaning Lua skills are transferable from company to company. That's partly due to its speed and the ease with which developers can embed Lua into a game engine.
This web page catalogs stand-alone programs that are written in or are extensible using the popular Lua programming language.
If you know of any missing apps, can provide corrections or additional detail about any listed apps that lack a description, or have any relevant suggestions, your input will be appreciated. Please post to the Lua-l mailing list. You can subscribe at http://www.lua.org/lua-l.html.
See also Lua Resource Links on this web site.
RIGHTS: This page's author, Paul E. Merrell, hereby waives all copyright and related or neighboring rights to this web page's content, pursuant to the Creative Commons CC0 Universal relinquishment of rights found at http://creativecommons.org/publicdomain/zero/1.0/.
Last updated: 19 September 2013. This page is composed and maintained using the Lua-extensible NoteCase Pro, with several Lua scripts used in the page's production.
Added since the last major page update:
Wikipedia list of Applications Using Lua.
Wikipedia list of Free Software Programmed in Lua.
Wikipedia list of Lua Scriptable Software.
Wikipedia list of Lua-Scripted Video Games.
Wikipedia list of Lua-Scriptable Game Engines.
Dolphin Computer Access uses Lua scripting to make inaccessible applications accessible for visually impaired computer users with their SuperNova screen reader.
Visual Business Logic Editor Toolkit
Visual Business Logic Editor Toolkit is a visual domain-specific language toolkit in Lua. See also slides from Lua Workshop 2013 and online demo.
It is often the case that, on one hand, there is a need to configure lots of intricate and ever-changing business logic rules, but, on the other hand, the person who has the most expertise on the particular business logic area – domain expert – often will not have a clue on how to write code effectively (or even at all). All kinds of clumsy UIs, spaghetti code, wasted dedicated scripter's hours and other unpleasantries stem from that problem.
Business Logic Editor Toolkit alleviates that problem by providing a programmer with a set of tools to easily build a business-logic configuration UI, suitable for a non-programmer domain expert, and an easy, platform-agnostic way to seamlessly tie business logic configuration from that UI to an existing (or newly written) codebase, effectively creating a visual domain-specific programming language.
Autosport Labs exposes APIs to Lua for programming their Race Capture Pro Data Acquisition and Control system and their Megajolt Lite Programmable Ignition Controller. See e.g., API documentation for Race Capture Pro.
Mercedes-Benz uses Lua in several models of their cars. See page 6 in the linked PDF. For what purpose(s), we do not yet know. Do you? If so, please let us know using the contact information near the top of this page.
Take Command Windows Command Prompt
Take Command is a comprehensive interactive GUI and command line environment that makes using the Windows command prompt and creating batch files easy and far more powerful. Take Command displays your command line applications in tabbed windows, with optional Explorer-style integration for a visual look at your folders. Take Command includes hundreds of Unix-like major enhancements to CMD commands such as COPY, DEL, and DIR, and adds more than 160 new commands, 587 internal variables and functions, a batch file IDE / debugger, advanced command line editing and completion, and thousands of other features.
Take Command is the successor of the 4DOS command processor that substituted for Command.com in MS DOS and Windows 95.
Since version 16.0, Take Command has shipped with an an embedded Lua interpreter.
Datalog is a deductive database system for memory constrained devices that can be manipulated with Lua.
MySQL ProxyMySQL Workbench
MySQL Proxy is a lightweight binary application standing between one or more MySQL clients and a server. The clients connect to the Proxy with the usual credentials, instead of connecting to the server. The Proxy acts as man-in-the-middle between client and server. The Proxy ships with an embedded Lua interpreter.
Using Lua, you can define what to do with a query or a result set before the Proxy passes them along. The power of the Proxy is all in its flexibility, as allowed by the Lua engine. You can intercept the query before it goes to the server, and do everything conceivable with it, like pass it along unchanged, fix spelling mistakes, rewrite the query, etc.
MySQL Workbench is a visual database design tool that integrates SQL development, administration, database design, creation and maintenance into a single integrated development environment for theMySQL database system.
The program embeds Lua for its extensions and add-ons.
PL/Lua is an implementation of Lua as a loadable procedural language for PostgreSQL: with PL/Lua. You can use PostgreSQL functions and triggers written in the Lua programming language.Tarantool/Box NoSQL database - uses Lua as a stored procedure language.
Procedural languages offer many extra capabilities to PostgreSQL, similar to C language extensions: control structures, more complex computations than allowed by SQL, access to user-defined types and database functions and operators, and restriction to trusted execution.
PL/Lua brings the power and simplicity of Lua to PostgreSQL, including: small memory footprint, simple syntax, lexical scoping, functions as first-class values, and coroutines for non-preemptive threading.
Celestia, the astronomy educational program, uses Lua as its scripting language.
Far Manager is a program for managing files and archives on Windows operating systems. Far Manager can be extended with Lua in two ways: in macros and as plugins.
Macros are the most common use of Lua with Far Manager. Starting from 30 Sept. 2012, Lua is used as a macro language instead of a primitive custom language that was used in earlier versions of Far. A "macro" in Far Manager is a user-written code that is executed whenever some event occurs (e.g. a key pressed, an editor opened/closed/saved, dialog opened/closed, etc.).
Far Manager plugins are written in C/C++/Pascal but "macros" are written in Lua.
DCS: Black SharkAGen
"DCS: Black Shark" is a PC flight simulator of the Russian Ka-50 attack helicopter and is the first title in a new Eagle Dynamics and The Fighter Collection simulation series: "Digital Combat Simulator" (DCS). Following Eagle Dynamics' tradition of excellence, "DCS: Black Shark" will bring an even more realistic simulation experience than its predecessor "Flaming Cliffs". "DCS: Black Shark" will offer an unprecedented level of realism in regards to flight dynamics, instruments modeling, avionics systems, and weapon systems. The artificial Intelligence of ground vehicles and helicopters has been improved dramatically as well as weapon modeling. A new Mission Editor includes a powerful electronic mapping system that allows user to easily create missions and campaigns. A new campaign system allows the front line of the battlefield to move back and fourth according to your mission success or failure. Due to the increased flexibility of the DCS system, additional fixed-wing aircraft and helicopter add-ons will follow shortly.Lua is heavily used through whole project for game AI programming, configuration purposes and many more. Game Mission Editor is nearly completely implemented on Lua. Contact: [Sales]
AGen serves as an interface between the system hardware and your game. It allows you to focus almost entirely on game logic thanks to its simple and lightweight framework.
All of the Lua code is platform independent and will work with AGen distributions on iOS, Android, OS X, Windows, and Linux. AGen comes bundled with several Lua extensions for physics, pathfinding, networking, XML parsing and more.
Aleph One is a cross-platform 3D [FPS] game engine. Uses Lua 5.0 for in-game scripting (such as scenarios, mods and total conversions). (GPL.)
Apocalyx is a 3D engine for Windows/OpenGL. Completely scriptable with Lua 5.1. (GPL.)
Aroma Lua 5.1 2D game engine for Google Chrome Native Client. Implements parts of the LÖVE Lua API to ease porting. (MIT license)
bitsquid is a game engine, enabling writing of a complete game using only Lua. Integrated Lua debugger and console. Live reload of Lua scripts. Artists can use Flow, a high level visual scripting language. To improve performance, freely mix Flow, Lua and C++. blitwizard cross-platform 2D engine with easy networking, sound, physics. Completely scriptable with Lua 5.2. (zlib license)
Cafu is an open-source game engine and graphics engine with multiplayer network support. It currently works under Windows and Linux (and Mac soon).
It uses Lua mainly for map entity scripting and GUI scripts, see http://api.cafu.de/scripting/ for more details.
CEGUI (Lua 5.0/5.1) a cross-platform library that provides windowing & widgets for graphics APIs/engines where such functionality is not natively available or severely lacking. Includes renderers for OpenGL, DirectX, Irrlicht, OGRE, Crystal Space, OpenSceneGraph; provides interfaces to write your own renderers. Uses Lua for scripting. (MIT license.)
Electro is a cross-platform 3D visualization engine. Based on the MPI process model and designed for use on both cluster-driven tiled displays and desktop systems. Completely scriptable with Lua 5.1. (GPL.)
The Enigma engine (also called the Blitzkrieg engine) is a game engine developed by Nival Interactive that is used in several real-time tactics video games.
GrimE (Grim Engine) is an adventure game engine, created by Bret Mogilefsky at LucasArts using the free software scripting language Lua. Many games are built atop this engine; 19 are listed here.
Version 2.01 of the profile management software for Logitech’s G15 gaming keyboard uses Lua as its scripting language.LÖVE is a framework to make 2D games with Lua. It's free, open-source, and works on Windows, Mac OS X and Linux. (zlib license.)
Luxinia is a 3D open-source engine written in C that uses OpenGL, Lua, GLFW, OpenAL and ODE physics. As user you do not need any compilers but purely work with the high-level language Lua to code your projects. The engines design goals were:
The Luxinia 1.x engine is currently not actively developed anymore, however you still might find its games and usage appealing. Work on a new open-source rendering focused framework has started.
Moai SDK 2D game engine for iOS and Android, Mac OS X, Windows and Google Chrome (Native Client). Completely scriptable with Lua 5.1. (CPAL license.)
Multimedia Fusion Developer 2 has a Lua extension that allows games and applications created with it to run Lua scripts.
PodballScrupp is a cross-platform 2D game engine. Completely scriptable with Lua 5.1. (MIT license.)
Podball is a simple 2D ball game simulation and programming contest. The playing agents ("pods") are fully scriptable with Lua 5.2. (MIT license)
T-Engine4 is a cross-platform 2D [roguelike] game engine. Supports both "old school" ASCII display and OpenGL/SDL graphics. Completely scriptable with Lua 5.1. (GPL.)
Verge is a cross-platform 2D game engine. Completely scriptable with Lua 5.1. (BSD license.)
In case you're wondering why so many programs are listed in this page's Gaming category ---
Lua was honored with the 2011 Game Developer Magazine Front Line Award in the programming tool category.
Programming tool: Lua
By Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes
Lua has become an extremely popular programming language, so much so that it's achieved a critical mass of developers in the game industry, meaning Lua skills are transferable from company to company. That's partly due to its speed and the ease with which developers can embed Lua into a game engine. Lua is also highly extensible -- it's simple to expand its functionality with libraries either written in Lua, or as extensions in other languages. And it's relatively small and simple, both in terms of the source files, and the resultant code and run-time memory usage.
Civilization 5Crimson -- Steam Pirates
CryENGINE2 is the successor of CryENGINE, the game engine behind Far Cry. Among others, the engine is used by Crysis, a first-person shooter game developed by Crytek and published by Electronic Arts. The use of Lua allows the setup and tweaking of weapons/game parameters, playing of sounds and loading of graphics without touching the C++ code. CryENGINE2 is also used in non-game applications like IMAGTP, a 3-D virtual visualization program. http://www.crytek.com/
Crysis is a science fiction first-person shooter video game developed by Crytek (Frankfurt, Germany), published by Electronic Arts for Microsoft Windows, and released in November 2007. It is the first game of a trilogy. A separate game entitled Crysis Warhead was released on September 12, 2008, and follows similar events as Crysis but from a different narrative perspective. Crysis, Crysis Warhead and a multiplayer expansion called Crysis Wars were re-released as a compilation pack titled Crysis Maximum Edition on 5 May 2009.
Daimonin is a MMORPG and is using Lua server sided as general purpose script engine. It is used in combination with the map editor as quest and communication interface but also as AI extension or event triggered inside a map.The base plugin to the C server and the scripts are hosted on the sourceforge project SVN/ Contact: [Contact]
The Diesel engine is a game engine developed and used by GRIN. The engine was originally developed for their game Ballistics and has been used, albeit with modifications, in a number of other games since then.
Far Cry uses Lua extensively for scripting all game events and AI/game logic, both for single and multiplayer game, and for realtime game editing.FCEUX is an open source Nintendo Entertainment System and Family Computer Disk System emulator. It is a merger of various forks of FCE Ultra.
Foldit is an online puzzle video game about protein folding. The game is part of an experimental research project, and is developed by the University of Washington's Center for Game Science in collaboration with the UW Department of Biochemistry.
Force - The Order Of Dawn
Phenomic Game Development
We use Lua for several parts of the project. We first chose it to be the language for mission scripting (triggers and other stuff), but currently we use Lua for mission scripting, sound scripting, data definition language, general preprocess tools and other uses. Contact: [Dirk Ringe]
Garry's Mod is a Half-Life 2 Modification. It won "Mod of the Year" (2005) from ModDB, "PC Mod of the Year" (2005) from GameSpy, and "Best Mod 2005" from PCGamer US. Lua opened a lot of doors to Gmod players, allowing them to script new weapons, gamemodes, and other features. There may never be any addition that was quite as great as Lua.
Heroes of Might and Magic V.
Heroes of Might and Magic V (HoMM5) is the fifth installment of the Heroes of Might and Magic computer game series. Lua is used for custom logics programming. The regular game process is programmed in C++, but all the high level functions (as hero movement, spell casting, changing resources or creatures quantity, placing map objects, creating text boxes, etc.) are also accessible from Lua script. Nival Interactive map and game designers use Lua for their needs because the language is simple to study and easy to use by non-programmers. And the programmers like Lua, because it can be easily bound to the existing C++ code and it's powerfull enough for a wide variety of applications.
Relic Entertainment Inc
Homeworld2 is a space PC RTS game that uses Lua4 extensively in almost every aspect of the game, including the UI, AI, game rules, game flow, stats, game attributes, game tuning and automation. Contact: [Shelby Hubick]
Illarion is an open source graphical online roleplaying game that focuses on true roleplaying. Illarion uses Lua as scripting language since 04/2005. Among other systems, non-player-characters, quests, spellcasting, fighting and crafting are handled by Lua scripts. Started in 2000, Illarion evolved to a feature rich online game, mostly comparable to Ultima Online. Illarion is using a Java client, based on the Slick 2D Game Library. It is funded by the Illarion e.V. and can be played free of charge. Contact: [vilarion]
Impossible CreaturesLegend of Grimrock
Relic Entertainment Inc.
Impossible Creatures is a PC RTS (real time strategy) game released on January 7th 2003. The project has 100's of thousands of lines of code and was written by ~8 programmers. Lua contributed about 50,000 lines of that code.Lua was used extensively in all aspects of the game. It was used to configure almost every system and subsystem in the game. It defined and controlled the UI, managed the AI, and specified the look of the effects and other graphical entities. It was used in tuning the game in realtime, for editing unit attributes, processing the game rules, automation of tasks, and on and on.Lua was chosen because of its speed, its simple syntax and its ease to understand for both programmers and designers. It was also easy to debug, modify and itegrate into our C++ game/ tools. Contact: [Shelby Hubick]
Metaplace is a next-generation virtual-worlds platform designed to work the way the Web does. Instead of giant custom clients and huge downloads, Metaplace lets you play the same game on any platform that reads its open client standard. It supplies a suite of tools so you can make worlds, and it hosts servers for you so that anyone can connect and play. And the client could be anywhere on the Web. Metaplace committed to an open markup standard for its network protocol - anyone can write a client for any platform they want. It uses Web standards for everything it could, which is why you can have a game world that is also a website, or use Web data to populate your world. The game logic is written in Lua, so it is easy to make whatever kind of game or world you want. http://www.metaplace.com/
Multi Theft Auto (MTA) is a multi-player modification for Rockstar North's Grand Theft Auto game series. Originally founded back in early 2003 as an experimental piece of software, Multi Theft Auto has since grown into an advanced multiplayer platform for gamers and third-party developers.
Starting with MTA for Grand Theft Auto: San Andreas, you can play Grand Theft Auto on-line with your friends, in your own custom created maps and gamemodes, powered by the Lua scripting language and currently (as of end 2006) 373 game specific Lua functions! The use of Lua allows you to create virtually any gamemode or feature you like in the game. Examples and other cool Lua stuff can be found at our homepage. Contact: [Cecill Etheredge]
OpenTibia is an open source server replacement for the MMORPG Tibia. OpenTibia uses Lua for scripting the whole game environment like item actions, events and mission quests.
PsychonautsRoblox online games.
Double Fine Productions
Psychonauts is an XBox Action/Adventure game from the mind of Tim Schafer. All of Psychonauts Game logic is implemented via Lua. The Level Designers use Maya to create the geometry for the levels, and then place down markers for Lua controlled Script Entities. This includes all non-player characters, platforms, puzzle pieces. Basically the game engine boots up and places the main player into a static world. Lua scripts then take over and control all interactive elements. Lua is so light and fast! It is AWESOME!
SimCity 4 continues a long tradition of high-quality city simulation games by Maxis. The game uses Lua for configuring game constants and to control various of its elements including the user interface, tutorials, advisors, and automata. Third-party plugins for SimCity can access these features to define the behavior of custom content.
Slingshot Game Technology
Soul Ride is a PC snowboarding game featuring expansive real-world terrain and physics-based gameplay and character animation. We used stock Lua 3.2.2 in the engine as a configuration facility and console interface, and for scripting some game events. We dropped Lua into the engine late in development, and it proved to be simple, functional and headache-free. Contact: [Thatcher Ulrich]
Spring RTS is real-time strategy game engine inspired of Total Annihilation, released under GPL v2 License. It uses Lua scripting for unit animation, most gaming rules (gadgets) and in-game UI(widgets) as well as AI. All those lua scripts are released under GPLv2 compatible license: http://springrts.com/
S.T.A.L.K.E.R.: Shadow of Chernobyl
GSC Game World
S.T.A.L.K.E.R.: Shadow of Chernobyl is a game of the genre FPS - "first person shooter". It has sold over 1 million copies for PC worldwide. The project has been developed for 6 years, and included 20 programmers (7 script writers). It uses Lua 5.0.2 with LuaJIT (thanks to Mike Pall). Lua was chosen because of its simplicity, speed, and the availability of an open-source binding library (luabind). Lua is an open-source project with 10 years of history, with a large community, with few bugs, and that has been used in many other FPS games. Contact: [Dmitriy Iassenev]
Supreme Commander (video game) is a real-time strategy computer game designed and developed by Gas Powered Games. The game is considered to be the successor to Total Annihilation, which was ranked by GameSpy as the number one real-time strategy game of all time. Lua is the language used by Supreme Commander for most of the high-level game code. Lua is also the language used to write SupCom mods.
There (virtual world)
"There" is an online getaway where you can hang out with your friends and meet new ones -- all in a lush 3D environment that's yours to explore and help build. The game is written mostly in C++, served mostly from a scalable Linux cluster, with additional customization using ThereScript, which is Lua plus added functions.
ToME is a free roguelike game. It is a very evolved and deep game that started its life as a variant of Angband (of one of the variants actually) and has now grown into a wildly new game.
ToME uses Lua to allow customization of the engine, new quests, spells, powers, whatever. A lot is customizable thanks to Lua, and a lot more will be. Lua was selected because of its portability, smallness, clarity of syntax, tables and general neatness :) Contact: [DarkGod]
Warhammer Online: Age of ReckoningWolf Toss
EA Mythic/EA Games
Warhammer Online is a new MMORP game from EA Mythic (the creators of Dark Age of Camelot). Mythic has been a prolific creator of multiplayer online games since its formation in the mid 1990s. In 2006 the company was bought by Eletronic Arts. According to Lance Robertson, the Producer of Warhammer Online, "we are aiming for the game interface to be very modifiable; the actual method we have chosen for WAR is to have Lua addons."
These Lua mods follow the same popular fashion of World of Warcraft mods, where authors can customize the default Warhammer Online interface all the way to create full new interfaces and functionality.
World of WarcraftFamily Historian
World of Warcraft is a massively multiplayer role-playing game (MMORPG) which uses Lua as an embedded scripting language for the UI subsystem. This allows rapid prototyping of new features during development, and has the benefit that customers are able to customize and improve their own interface, through mods and addons. WoW is the world's most popular subscription-based MMORPG, with more than 8 million subscribers.
Family Historian is a deluxe desktop genealogy (family tree) application for Windows 7, Vista, and XP, in both 32-bit and 64-bit versions. Version 5 includes an integrated editor/debugger and API, which allow users to easily control and manipulate every aspect of their data, using scripts written in Lua. Scripts can also be shared with other Family Historian users as plugins, using the Family Historian Plugin Store, access to which is also integrated into the program.
To visit the Family Historian plugin store, which currently includes 49 Lua plugins, see http://www.family-historian.co.uk/pluginstore.
Adobe Edge Animate has an integrated IDE written in Lua that is shared with Adobe Photoshop Lightroom and Adobe Revel.
Edge Animate is a sophisticated app for professional web developers to create interactive and animated web content designed to work reliably on iOS and Android devices, and modern browsers such as Firefox, Chrome, Safari, and Internet Explorer 9.
Adobe Revel has an integrated IDE written in Lua that is shared with Adobe Photoshop Lightroom and Adobe Edge Animate.
Adobe Revel is a photo app for your Mac, iPad, and iPhone. Keep your photos organized using albums and captions. Use the editing tools in Revel to easily make all your photos look amazing. And share photos privately on AdobeRevel.com or publicly on your favorite social networks.
Everything you do in Revel is automatically synced across all your devices — so you always have access to your latest photos and photo edits no matter where you are or what device you're using.
info-beamer is a live coding presentation framework for Linux. Completely scriptable with Lua 5.1. (BSD license.)
Intermec Printers use Lua internally for various purposes and in their management web interface.
Fibaro Home Center
Fibaro Home Center is a building automation solution with both hardware and software components that offers a non-invasive installation process, which eliminates the need to run meters of cables. Miniaturized modules can be installed in any wall switch box, behind a light switch, roller blind switch, etc., and are compatible with every electrical system.
It features a simple configuration interface allowing you to change dependencies between devices, scenes, and the entire system intelligence from any computer at any time, without any specialist software or the need to call technical service.
Lua enables users to create ‘virtual devices’ and ‘scenes’ that are too complex for the user interface. See e.g., API and Fibaro-HC2-Toolkit-Framework.
GirderIndigo Rose AutoPlay Media Studio is a rapid application development environment. What would normally take days or weeks to build using traditional software development tools (C, C++, Java, Visual Basic) can now be created in record time – even if you’ve never programmed before. It’s perfect for making anything from AutoPlay CD menus and utilities to games and interactive multimedia applications – complete with web interaction, database connectivity, video playback and much more.
Girder allows users of all skill levels to make advanced scripts and macros to automate many functions both on the computer and around the house or office. Based on the Lua scripting language, Girder is a graphical user interface that allows easy access to devices like lights, security systems, home theater, and any or all PC's functions including full application control for any program.
Included with Girder is a library that contains hundreds of plug-ins, pre-configured actions, and support for leading third party hardware devices and software applications. Commercial automation has never been as easy as it is with Girder.
Girder also includes a built in web server that allows for scripts and macros to be executed from a fully customizable web page.
Most of Girder's usage is simply dragging and dropping actions into your scripts. Many predefined Girder actions are included in the GUI, making Girder easy to integrate with any program or device.
AutoPlay Media Studio builds upon Lua v. 5.1 with more than 865 exported methods.
Codea is an iPad app with visual extensions. It allows you to write Lua code to make visual games and other programs: http://twolivesleft.com/Codea/Crank Storyboard Suite is a suite of UI development optimization solutions for developers of consumer electronics, automotive infotainment devices, and industrial devices that require an embedded dynamic graphical display screen.
"Runs on QNX, Linux, Android, WinCE, Win32, MacOS, FreeRTOS on a variety of processors.
Decoda is a free and open-sourced professional development environment for debugging Lua scripts in your applications (A Lua IDE) that run on the Windows operating system. Decoda is an integrated development environment (IDE) and debugger for Lua. It can be used to debug embedded Lua scripts without requiring any modifications to the application they’re used within.
Geany is a Scintilla-based small and lightweight Integrated Development Environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages.
Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME - Geany only requires the GTK2 runtime libraries. Geany is known to run under Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, AIX v5.3, Solaris Express and Windows. Only the Windows port of Geany is missing some features.
Geany is extensible with Lua 5.1 after installation of the geanylua plugin, which also supplies a simple GUI toolkit for wizard construction.
Koneki is an Eclipse-based IDE for development of Machine-to-Machine solutions.
Koneki uses Lua as the main programming language for embedded development. In order to boost productivity and improve developer experience, Koneki includes a Lua IDE named Lua Development Tools.
LuaEdit is a Windows-based IDE/Debugger/Script Editor designed for the 5.1 and/or 5.2 version of Lua. It features remote debugging, local debugging, syntax highlighting, completion proposal list, parameter proposition engine, advance breakpoint management (including condition system on breakpoints and hit count), function listing, global and local variables listing, watches, solution oriented management, etc.
Lua Player helps programmer newbies to write their own games in Lua. It provides some game related functions, like image loading and blitting and is available for Sony's Playstation Portable and perhaps later for other platforms. http://www.luaplayer.org/
Moai is a mobile platform for game developers.
Moai Cloud — Ready-to-scale cloud service for Lua game logic, databases and additional game content. Offer unlockable game content, store persistent player and world state, and write multiplayer logic in the scripting language you’re already using.
Moai SDK — The open source Moai SDK enables game developers to focus on great gameplay and content, code in the easy-to-use Lua scripting language they already know, use ready-to-roll libraries for animation and physics, and avoid rewriting game code for different devices.
Indigo Rose Corporation
Setup Factory is a Windows software development tool for creating compact software installers for deployment via web, email, LAN, CD, DVD and floppy disk. Its compact single-file setup creates little runtime overhead (~450KB including uninstall) making it fast and easy to initialize and install. It uses Lua 5.0 as a scripting language to control and customize the installation process.
ZeroBrane Studio3DMLW Platform
ZeroBrane Studio is a highly extensible and customizable Lua IDE and debugger, written in Lua itself so easy to customize. Choice of its own front end or use the Estrela editor. Its main focus is extensibility for target applications using Lua.
Noteworthy features include support for multiple file formats and Unicode; "api" for autocompletion and tooltips; auto-completion for functions, keywords, etc.; function tips; function list in file (quick jump to); function call highlighting; bracket matching/highlighting; project file browser; experimental type/class guessing for auto-completion; support for different editor styles; console to directly test code snippets with local and remote execution; and integrated debugger (with support for local and remote debugging).
Automatically loads several 'plugin' like classes:
The 3DMLW platform is an open-source software suite, that can be employed for any application that requires showing dynamic 3D content. Its own scripting language offers some unique possibilities for software design and a scalable format support for 3D models allows it to be utilized as a 3D integration tool.
With 3DMLW any designer can develop and publish 3D objects on the web with no advanced coding skills necessary. Content developers are treated to a simplified process of creating anything from static animated displays over rich interactive presentations to fully featured games.
The 3DMLW Platform plugin interface is extensible using Lua.
Adobe LightroomCHDK (Canon Hack Development Kit) - An alternative open source firmware for many Canon digital cameras, providing advanced features; e.g., Raw image capability for compact cameras, live histogram, other professional features for smaller cameras, and … Lua scripting. Enables time lapse, motion detection, advanced bracketing, and much more.
Adobe Photoshop Lightroom is "the complete, elegant environment for the art and craft of digital photography from raw capture to creative output." Lua is embedded and as of 2009, 63% of Lightroom team-authored code was written in Lua up from a previously reported 40%. See this slideshow to see the many ways Lua is used in Lightroom.
Lightroom's IDE is shared with Adobe Revel and Adobe Edge Animate.
GrafX2, a pixel-art editor, can run Lua scripts for simple picture processing or generative illustration.
Ipe extensible drawing editor is a free vector graphics editor for creating figures in PDF or EPS format. It can be used for making small figures for inclusion into LaTeX documents as well as making multi-page PDF presentations.
Vision Components smart cameras are programmable using MVNova Machine Vision Script language, which is based on Lua and integrates with Microsoft Visual Studio. Along with related software, the combination provides an integrated machine vision solution. See http://tinyurl.com/8xthe5j for an overview.
MediaWiki (which powers Wikipedia) is far along in its developers' project to integrate Lua with MediaWiki via an extension named Scribunto, used for scripting templates.
Their implementation of Lua is currently running on all WikiMedia Foundation wikis,
The Scribunto extension is available for other MediaWiki users. Documentation for the Lua implementation is here.
Nanoki, a simple wiki engine. http://alt.textdrive.com/nanoki/Ophal.org
Ophal is a highly scalable CGI web platform, which aims to be easy to maintain, learn, extend, and is open to improvements. Developers can create modules to alter and extend Ophal's core capabilities and add new features or customize Ophal's behavior and appearance. Ophal core supports themes, which customize the "look and feel" of Ophal sites.
Ophal is implemented in pure Lua, compatible with Lua 5.1 and LuaJIT 2.x. Also, Ophal includes Lua-CGIC, a Lua module written in ANSI C that is a helper for CGI scripting.
Fábrica DigitalPublique! is a web based content management system. The information structure managed by Publique! can comprise an entire HTML site or just part of it. Publique! can also be used as an XML based web service or as an WML front end. Publique! offers a workflow based on three user types or actors: Authors, Editors and Readers.
There are currently more than 100 sites using Publique in Brazil, Argentina, USA and Japan. The current version (2.2) is available in Portuguese and English. Japanese and Spanish versions are on the way.
Publique started in 1998 and has been developed by a team of 3 to 7 programmers during its lifetime. The production team totals 30.
Publique uses a modified version of [CGILua] as its current web engine and consists in almost 50K lines of Lua and 5K line of C (not including CGILua itself).
Lua has been chosen for its ease of prototyping, speed of execution and extensibility. It is used for almost every feature in the system other than the OS Platform, DBMS and Web Server abstraction layers. Contact: [André Carregal]
Sputnik, An Extensible Wiki Engine in Lua.FreePOPs, an extensible mail proxy, uses Lua to power its web front-end.
Sputnik is a content management system designed for extensibility. It works as a wiki out of the box, but can be extended into other things.
Out of the box Sputnik behaves like an easy to use and full-featured wiki that can be used "as is". It offers editable nodes, history and diff, user accounts with optional email validation, a flexible permission system, RSS feeds, etc.
However, Sputnik was designed to be extended. It offers many options out of the box, and it is easy to add more. You can surely change the way Sputnik looks — see some of the examples in Sightings. But you can also do much more.
Sputnik can also be used as a platform for a wide range of "social software" applications. A few extra templates and perhaps a few lines of Lua code can turn it into a bug tracker, a photo album, a blog, a calendar, a mailing list viewer, or almost anything else. So, you can think of it as a content-management system or a web platform of sorts.
MailCatch is an email service that allows you to create temporary disposable mailboxes, in a completly anonymous way. When you are asked for an email address by a website and you do not want to give yours (for fear of spam), you can simply give whatever mailbox name you want on the mailcatch.com domain (like email@example.com). Then go to the MailCatch web site, type in the mailbox name and check your mail. You can access your mailbox even faster by using a URL like yourinbox.mailcatch.com
The site is based on many Lua Kepler Project modules (and it runs an xavante, although behind an apache proxy). The pages are rendered using a custom mod of
the Cosmo template library.
spamfilter.lua is an anti-spam filter written in Lua using the OSBF-lua module. It takes special advantage of EDDC to introduce TONE-HR, a highly effective training method. The combination of OSB, EDDC and TONE-HR to enhance a classical Bayesian classifier resulted in the best spam filtering performance in TREC's Spam Track 2006 and in CEAS 2008 Live Challenge.
OSBF-Lua (Orthogonal Sparse Bigrams with confidence Factor) is a Lua C module for text classification. It is a port of the OSBF classifier implemented in the CRM114 project. This implementation attempts to put focus on the classification task itself by using Lua as the scripting language, a powerful yet light-weight and fast language, which makes it easier to build and test more elaborated filters and training methods.
The OSBF algorithm is a typical Bayesian classifier but enhanced with two techniques originally developed for the CRM114 project: Orthogonal Sparse Bigrams - OSB, for feature extraction, and Exponential Differential Document Count - EDDC (a.k.a Confidence Factor), for automatic feature selection. Combined, these two techniques produce a highly accurate classifier. OSBF was developed focused on two classes, SPAM and NON-SPAM, so the performance for more than two classes may not be the same.
Lumail is a modern console-based email client developed for GNU/Linux.
There are many graphical clients for email, but comparatively few designed solely for console use. With the exception of GNU Emacs none of the console clients I examined had any built in support for scripting with a real language.
Lumail is scripted and configured in 100% Lua, along with many lumail-specific functions. Lumail can be extended using Lua and Lumail primitives.
Nmap ("Network Mapper") is a free open source utility for network exploration or security auditing. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. It won Linux Journal's Editor's Choice Award for Best Security Tool, LinuxQuestions.Org Security App of the Year award, and Info World's Best Information Security Product award. The Nmap scripting language is an embedded Lua interpreter which was extended with libraries for interfacing with Nmap. Lua was chosen because it exceeded in all criteria for Nmap: it is small, distributed under the MIT license, has coroutines which provide a sane method for parallel script execution, was designed with embeddability in mind, has excellent documentation, and has a large and committed community. http://nmap.org/
Wireshark network protocol analyzer.ExtraPuTTY is a fork of the PuTTY Telnet/SSH client. For-Windows only, incorporates PuTTY features, plus:
Wireshark is a highly popular multi-platform network protocol analyzer used for troubleshooting, analysis, software and protocol development, and education. It has all of the standard features you would expect in a protocol analyzer, and several features not seen in any other product. Wireshark embeds Lua as a language for prototyping and scripting. Lua can be used to write dissectors, post-dissectors and taps (a mechanism to fetch data from every frame).
Apache Traffic Server
Apache Traffic Server software is a fast, scalable and extensible HTTP/1.1 compliant caching proxy server. Formerly a commercial product, Yahoo! donated it to the Apache Foundation. Since version 3.3.0 it has been extensible with Lua plug-ins.
Traffic Server ships with not only an HTTP web proxy and caching solution, but also provides a server framework, with which you can build very fast servers for other protocols. As an HTTP web proxy, Traffic Server sits between clients and servers and adds services like caching, request routing, filtering, and load balancing. Read more.
Barracuda Embedded Web Serverlighttpd web server uses Lua for hook scripts as well as a modern replacement for the Cache Meta Language.
Barracuda provides Lua Server Pages (LSP) for web page authoring. The Barracuda platform is an advanced Embedded Web Server designed for controlling and monitoring embedded industrial applications in real time. The Barracuda Web server has a very small footprint and runs on almost any platform. LSP provides support for most of the Barracuda APIs (cookies, sessions, RPC, etc.) and has built-in Lua-SQL support. Barracuda LSP can be extended with existing Lua libraries. LSP applications can be packaged as ZIP files and/or embedded in the Barracuda web server executable.Contact: [David Burgess]
LuaNode is mainly developed on Windows, but it is being tested also on Linux.
Non-Blocking Scripted Servers (like Node.js, but faster)
Nginx is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hosts nearly 12.18% (22.2M) of all domains worldwide. As Netcraft predicted, Nginx now surpasses Microsoft IIS as the second most popular web server. Extensible using the HttpLuaModule.Prosody is a cross-platform Jabber/XMPP server written in Lua.
WinGate proxy server allows event processing and policy to execute lua scripts with access to internal WinGate objects.
OpenWrt LuCI web GUI.The Firefox Web browser can be extended using Lua and Moonshine, an embedded Lua environment for Firefox.
LuCI was founded in March 2008 as "FFLuCI" as part of the efforts to create a port of the Freifunk-Firmware from OpenWrt Whiterussian to Kamikaze.
The initial reason for this project was the absence of a free, clean, extensible and easily maintainable web user interface for embedded devices. While most similar configuration interfaces make heavy use of the Shell-scripting language LuCI uses the Lua programming language and splits up the interface into logical parts like models and views, uses object-oriented libraries and templating. That ensures a higher performance, smaller installation size, faster runtimes and what is even more important: better maintainability.
Meanwhile LuCI evolved from a MVC-Webframework to a collection of several libraries, applications and user interfaces with general purpose for Lua programmers while the focus still remains on the web user interface which also became an official part of OpenWrt Kamikaze.
LuaKit is a highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.The Mihini project delivers an embedded runtime running on top of Linux, that exposes an high-level Lua API for building Machine-to-Machine applications. sKyWIper, Flame, Flamer (PDF)
It is primarily targeted at power users, developers and any people with too much time on their hands who want to have fine-grained control over their web browser's behavior and interface.
The sophisticated cyber-spy malware sKyWIper (also known as Flame and FLamer) embeds Lua and includes over 3,000 lines of Lua code. "Many parts of Flame have high order logic written in Lua — with effective attack subroutines and libraries compiled from C++," according to Kapersky Labs.
sKyWIper has very advanced functionality to steal information and to propagate. Multiple exploits and propagation methods can be freely configured by the attackers. Information gathering from a large network of infected computers was never crafted as carefully as in sKyWIper. The malware is most likely capable to use all of the computers’ functionalities for its goals. It covers all major possibilities to gather intelligence, including keyboard, screen, microphone, storage devices, network, wifi, Bluetooth, USB and system processes.
— sKyWIper (a.k.a. Flame a.k.a. Flamer): A Complex Malware for Targeted Attacks (PDF), Laboratory of Cryptography and System Security (CrySyS), Budapest University of Technology & Economics (31 May 2012).
arcapos (commercial point of sale solution)
Asterisk: Telecom PBXCISCO uses Lua to implement Dynamic Access Policies within the Adaptive Security Appliance.
From the above-linked website: Asterisk is software that turns an ordinary computer into a communications server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and more. It is used by small businesses, large businesses, call centers, carriers and governments worldwide. Asterisk is free and open source.
http://conky.sourceforge.net/eLua stands for Embedded Lua and the project offers the full implementation of the Lua Programming Language to the embedded world, extending it with specific features for efficient and portable software embedded development.
Conky is free software and runs in X on Linux and BSD. Originally a fork of Torsmo, Conky's torsmo-based code is BSD licensed. New code in Conky has been licensed under the GPL 3.0.
Since its inception, Conky has changed significantly from its predecessor, while maintaining simplicity and configurability. Conky can display just about anything, either on your root desktop or in its own window. Not only does Conky have many built-in objects, it can also display just about any piece of information by using scripts and other external programs.
eLua offers the full features of the regular Lua desktop version and uses Lua's native mechanisms to extend it with embedded development optimized and specific features. Like in Lua, you program in C, Lua or a mixture of both and your program runs in a wide varied of (sometimes radically different) platforms and architectures supported.
Ginga, the middleware for Brazilian Digital Television System (SBTVD or ISDB-T), uses Lua as a script language to its declarative environment, Ginga-NCL. In Ginga-NCL, Lua is integrated as media objects (called NCLua) inside NCL (Nested Context Language) documents.
GUPPY - genetic sequence visualization
Computational Biology Research Center, AIST TokyoGUPPY (Genetic Understanding Perspective Preview sYstem) is a program for visualizing information of sequence databases in molecular biology. This program aims to accelerate computational tasks for various studies in bioinformatics. Our current development involves prototyping additional functions for some of active biological projects. Lua language was embedded in this program in order to facilitate data processing and scripting functions for layout of the sequence map.This program also features highly interactive operations for smooth scrolling and zooming from the genomic landscape to discrete nucleic acid sequences. Contact: [Yutaka Ueno]
Olivetti Engineering SA
Hercule is the firmware development platform for Olivetti printers, used in ANY_WAY and MY_WAY series. Lua is used as a configuration script to take the decisions about print modalities, provided desired qualities. This allows the printer driver to behave identically at run time. Additionally, Lua scripts can be executed directly from memory cards, without any host computer, simplifying test and production tasks. Contact: [Patrick Rapin]
Logitech SqeezeboxLua4Delphi provides Lua integration for all applications made using Delphi.
Lua will be part of the base OS install of the upcoming NetBSD 6.0 release. Not only does NetBSD contain Lua in default base install, but it also comes with some specific Lua bindings, e.g. to access GPIO pins through Lua (and thus making NetBSD an ideal platform for playing and tinkering with hardware).
Also in the base install is a Lua interface to sqlite3 (which is itself is part of NetBSD).
Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings , hashes, lists, sets and sorted. Lua apps can access and manipulate Redis data using the redis-lua Lua client library. See also http://antirez.com/post/an-update-on-redis-and-lua.html.Rumble is a mail server suite for SMTP (ESMTPSA), HTTP, POP3 and IMAP4v1 with an extensive C/C++ and Lua API for scripting.
It comes with support for SSL/TLS, SQLite and MySQL and has a web-based administration and webmail feature.
Additional included modules feature greylisting, DNS blacklisting, SpamAssassin support anddynamic performance scaling as well as a multithreaded structure that allows for clustering of multiple servers for one or all domains, and with the ease of the Lua API, you can create your own new server mailing lists, CRM software, e-marketing and other extensions within minutes.
ScriptStudioSnort intrusion detection system has included a Lua interpreter since the version 3.0 beta release. See http://www.linuxsecurity.com/content/view/128135/171/.
is a high-performance algorithmic trading platform that enables users to quickly code, test and deploy trading strategies or order routing scenarios. all trading rules are written in Lua in the embedded Lua editor of ScriptStudio: http://www.softcapital.com/Products/Scriptstudio/scriptstudio.aspx
Space Shuttle Hazardous Gas Detection System
ASRC Aerospace, Kennedy Space Center, Florida, USA
Lua 4.0 was integrated into the system that is used to monitor gas concentration levels during Space Shuttle launch operations. Launch personnel use Lua to perform some of the more tedious tasks such as long duration leak testing and statistical data collection. Lua was integrated into the Windows application that provides remote control of leak detection equipment installed at the launch pad. The remote control application provides hooks into Lua that allow a Lua script to gain access to the data collected and to issue commands to the leak detection equipment. Lua was chosen mainly because it is an easy language to understand (a benefit for the launch personnel) and it is very easy to integrate into a project. Contact: [Charles Curley]
Squeezebox Jive Platform
Jive is a software platform designed to power the development of remote control applications for Squeezebox and Transporter. The key highlights of the Jive platform are the Jive Browser, a resolution and color-depth independent renderer that allows us to power a wide range of display types, from monochrome VFDs to full color LCD screens; and the Jive UI, a new, Lua-based, scalable user interface that can be completely customized by anyone familiar with Lua, a powerful, open-source scripting language.
Computer Graphics Technology Group,
PUC-Rio/Tecgraf is the result of a partnership between PUC-Rio, the Pontifical Catholic University of Rio de Janeiro, and [PETROBRAS], the Brazilian Oil Company. Tecgraf is Lua's birthplace, and the language has been used there since 1993. Currently, more than thirty programmers in Tecgraf use Lua regularly, who have written more than two hundred thousand lines of code, distributed among dozens of final products. Contact: [Waldemar Celes]
TerraME is a programming environment for spatial dynamical modelling. It supports cellular automata, agent-based models, and network models running in 2D cell spaces. TerraME provides an interface to TerraLib geographical database, allowing models direct access to geospatial data. Its modelling language has in-built functions that makes it easier to develop multi-scale and multi-paradigm models for environmental applications.
TerraME offers extensibility with Lua v. 5.1.4 and runs under Windows (XP, Vista, and Windows 7), OS X, and Linux.
TI-Nspire calculators contain applications written in Lua, since TI added Lua scripting support with a calculator-specific API in OS 3+.
3DMLW plugin uses Lua scripting for animating 3D and handling different events.
Aqualung is an advanced music player originally targeted at the GNU/Linux operating system, today also running on FreeBSD and OpenBSD, with native ports to Mac OS X and even Microsoft Windows. It plays audio CDs, internet radio streams and podcasts as well as soundfiles in just about any audio format and has the feature of inserting no gaps between adjacent tracks. Aqualung can be scripted using Lua. Page search http://aqualung.factorial.hu/manual/aqualung-doc.html for details.
Digital Fusion is a fully integrated, non-linear compositing and special effects post-production system for finishing, design and effects creation, used extensively in many feature films, HDTV productions, broadcast video, web-based/multimedia projects and more.
Lua forms the basis of 'DFScript', an integrated scripting language added in Digital Fusion v4. This allows the automation of repetitive tasks within the program, as well as facilitating integration into other aspects of a post production facility, such as clip management, 3D renderer integration, EDL/conform integration etc.
In addition to scripting being used for pipeline integration, render management and things like slate generation etc, it is also possible to write image processing plugins ("Fuses") using Lua.
Lua scripting to Fusion can also be done via network, to automate processes across render farms or multiple workstations.
Contact: [Peter Loveday]
The Moving Picture Company
Giggle is a renderman procedural DSO developed for the production of visual effects created for the film 'Troy'. This project required the rendering of scenes comprising tens of thousands of battling soldiers,in addition to complex city layouts and particle effects for flames, smoke and dust. The generation of all this geometry was handled almost exclusively at rendertime by Giggle.
Giggle's core functionality comprises approximately 40,000 lines of C++, written by 2 MPC programmers over the course of 9 months. This provides many capabilities including : * loading of geometry, shaders, particle caches and a proprietary cache format for agent simulations. * skinning and other geometry modifiers * procedural geometry generation * kd tree classes for space partitioning * geometry evaluators to perform ray intersections and closest point queries.
The functionality is bound into Lua, providing a flexible scripting interface which allows it to be easily adapted to specific tasks. MPC initially chose Lua for its reputation for speed and efficiency as well as for the great simplicity of its API. It has subsequently proved itself through heavy use by a team of 16 or so CG artists and across a render farm of over 500 machines.Since adoption, Giggle's use has been extended to other MPC feature pipelines, and coupled with an interactive interpreter and OpenGL preview renderer to provide interactive script development and debugging. Contact: [John Haddon]
Ginga® is the middleware of the Japanese-Brazilian Digital TV System (ISDB-TB) and ITU-T Recommendation for IPTV services. Ginga is made up by a set of standardized technologies and Brazilian innovations that make it the most advanced middleware specification.LuaAV is an integrated programming environment based upon extensions to the Lua programming language to enable the tight real-time integration of computation, time, sound and space. It is intended to support:
Ginga open middleware is divided into two main integrated subsystems, which allow the development of applications following two different programming paradigms. Those subsystems are called Ginga-NCL (for declarative NCL applications) and Ginga-IMP (for imperative applications). In the Ginga architecture, only the Ginga-NCL subsystem is required. Ginga-Imp is optional.
Modo 501Reason Digital Audio Workstation, Lua is used to describe Remote codecs.
ReNoise digital audio workstation.Rockbox open-source digital audio player firmware, supports plugins written in Lua.
VideoLan Media Player (VLC) can be scripted using Lua.Custom applications for the Creative Technology Zen X-Fi2 portable media player can be created in Lua.
Support for the Lua scripting language is being added to the NetBSD kernel so that it's possible to interact with the BSD kernel's various subsystems using Lua. With a Lua interpreter being added to the kernel, it's even possible to extend the kernel's subsystems in this scripting language. See article.
Scripting Layer for Android (SL4A). (SL4A) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to get things done.
Awesome, a window manager, is written partly in Lua, also using it as its configuration file formatDamn Small Linux uses Lua to provide desktop-friendly interfaces for command-line utilities without sacrificing lots of disk space.
Hack your OS X desktop environment.
Hydra is a lightweight window manager with a powerful API and an extremely small footprint.Written in a small bit of Objective C but mostly in Lua. Extensible and configurable with Lua. Licensed under the same license as Lua.
First and foremost, Hydra must be stable. It should never crash. You should only ever have to launch it once, and it should stay running until you quit it (or your computer restarts). No exceptions to this.
Secondly, Hydra must be lightweight. It should never do anything that drains your computer's battery. It should never poll for anything. And it should practically never use more than 10 MB of memory. Everything it does should feel instant and snappy, never sluggish or delayed.
Thirdly, its API should be completely transparent. There should be no surprises in how it's behaving, or what's being executed and when. It should be fully predictable.
Finally, the API must not be bloated. Nothing should be added that is impossible or impractical to do in pure Lua; what should be included is what's extremely common and likely to be used in everyone's configs.
Ion is a tiling and tabbing window manager for the X Window System. It is designed such that it is possible to manage windows using only a keyboard, without needing a mouse. Ion has been scriptable with Lua since version 2.Lua OS is—or aspires to become—two things:
Ion is no longer actively maintained but its fork, Notion, continues to be actively developed.
MikroTik RouterOS has beta support of Lua in 4.x, and planned support in 5.x. See http://wiki.mikrotik.com/wiki/Lua.
Notion is a tiling, tabbed window manager for the X window system, a fork of the no longer maintained-Ion.Open AT OS is an operating system provided by Sierra Wireless together with its wireless modules. It natively provides GSM related functions, such as GSM voice calls or data transfer related APIs, in addition to standard operating system functions. The firmware enables user applications to be written in Lua.
Notion can be configured and extended using Lua (PDF).
OpenWrt is described as a Linux distribution for embedded devices.
Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developer, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
The web extension interface of OpenWrt can be further extended using Lua.
tomsrtbt - "The most Linux on one floppy disk"wmii-lua is an extension of wmii (window manager improved-improved), a dynamic window manager for X11. It supports classic and tiled window management with extended keyboard, mouse, and 9P-based remote control. wmii-lua enables extension of wmii with Lua.
tomsrtbt is "The most Linux on one floppy disk" for: rescue recovery panic & emergencies, tools to keep in your shirt pockets, whenever you can't use a hard drive.
Tomsrtbt includes a Lua interpreter with luasocket, md5, and regex libraries as well as vi and emacs editors, along with other tools. Utilities currently written in Lua include: wc unrpm-- undeb-- tee split login head grep dirname cut cmp basename dhcpcd--. Contact: [Tom Oehser]
Alpine Linux (package manager): http://alpinelinux.org/apk/main/x86/lua-apk
apt-rpm package manager.
(Arch Linux package manager): https://wiki.archlinux.org/index.php/Clyde
RPMLua:APRIL-ANN toolkit (A Pattern Recognizer In Lua with ANNs). This toolkit is implemented by using an in-house package system and Lua binding tool for C++. It incorporates ANN algorithms (as dropout, stacked denoising auto-encoders, convolutional NNs), with other pattern recognition methods as HMMs among others. Gradient based optimization with backpropagation, Conjugate Gradient, Quickprop, RProp is possible. A package for automatic differentiation is being developed, which combined with gradient based optimization algorithms makes feasible learning of any differentiable statistical model. It is projected in one year to integrate decoding algorithms for speech, handwritten text and machine translation. Contributions are wellcome, the toolkit is in active development and a lot of work needs to be done.
(package manager), http://www.rpm.org/wiki/PackagerDocs/RpmLua
Pasted from: https://mail.google.com/mail/u/0/#inbox/14700d34076c91c5 Techne is a general purpose, programmable, interactive, physical simulator and renderer. It reads in a set of scripts wherein every aspect of a physical system is specified and then proceeds to simulate and render the system in real-time. This is the general idea. The main goal is to decouple computer programming, in its involved low-level form at least, from digital art creation, shifting effort away from worrying about graphics library quirks and memory allocation and towards understanding and modeling the physical and aesthetic aspects of a given system.
CodeMAXEstrela Editor is our wxLua-based editor primarly serving as Luxinia IDE, of course it can be used for any Lua coding. It has code completion, api tooltips and is (open-source/free).
is a simple and fast text editor with the possibility to add custom features using the script language Lua. By creating plugins with Lua you can customize CodeMAX on your own. For exsample it is possible to build a complete IDE for different programming languages like C/C++, PHP, Pascal or Basic. http://codemax.luaforge.net/
FXiTe is an advanced cross-platform text editor. It features built-in syntax highlighting for 40+ languages, an embedded Lua scripting engine, macro recording and playback, multi-line regular expression search and replace, rudimentary ctags and calltip support, a flexible interface to external tools, and a built-in "message window" to capture the output of external commands such as compiler error messages, etc. FXiTe is built using the Fox GUI toolkit and the FXScintilla text widget.
GNU Zile (short for "Zile Implements Lua Editors") is a lightweight Emacs subset. Zile has all of Emacs's basic editing features: it is 8-bit clean (though it currently lacks Unicode support), and the number of editing buffers and windows is only limited by available memory and screen space respectively. Registers, minibuffer completion and auto-fill are available. Function and variable names are identical with those of Emacs.lua-ed is a clone of the Unix standard editor "ed", written in Lua.
Zile has been translated from C to Lua in order to make it easier to maintain in future and is in the final stages of preparation for alpha release. There's plenty of scope both to improve the code (currently, not very "Lua-ish") and reduce its 6,500 lines considerably. Note that as of this writing, Zile does not yet support Unicode.
Zile is currently being rewritten as an editor toolkit ("Zile Implements Lua Editors"), and will support a range of editors, including Zmacs (an Emacs subset) and Zi.
LucED, the Lucid Editor, is an open source text editor with a graphical X11 user interface. Although the program is in its early development stage, you are welcome to test the current development snapshot.
The principal aim of the LucED project is to develop a text editor with the following features:
SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs. It is best used for jobs with simple configurations. SciTE features a lot of modern editor features (most provided by Scintilla) like syntax highlighting of code, call tips, autocompletion of code, folding, etc. Since version 1.60, Lua can be used to perform operations on the current buffer, using the full API of the Scintilla component.
"In a world where code bloat is commonplace and application speed is second to its number of features, Textadept breaks that trend, aiming to stay minimalist and fast, but at the same time being ridiculously extensible. At its core lies less than 2000 lines of C code, and that is how it always will be. While other editors rely on numerous plugins for a wide range of functionality, recordable macros to speed up workflow, and shell scripts to quickly transform text, Textadept takes it to the extreme: it gives you complete control over the entire application using the embedded Lua language. Lua is one of the fastest scripting languages available and has a very small footprint. In fact, most of Textadept is written in Lua. The application's incredibly fast startup time and operation attest to Lua's worthiness."
The Vim text editor is scriptable with Lua beginning with version 7.3. See http://vimdoc.sourceforge.net/htmldoc/if_lua.html.
Zeus programmer's editor.Karm
Karm is a easy to use multi-platform task management system written in wxLua which can be used from a simple to do list to a highly complicated project management system with lots of activities. Open source, licensed under the MIT license.
NoteCase Pro is a GTK+-based multi-platform outliner supporting both desktop and mobile device systems that also has versatile relational database-like capabilities for display and processing of arbitrary node groups on the basis of supported or custom node or document properties. E.g., double-click on a tag in the Tags Pane to display all nodes sharing the tag in flat list mode.WordGrinder is a minimalist word processor written in C and Lua 5.1.
Embeds Lua with standard libraries, Lua File System, Network Socket APIs, with Lua upgraded to v. 5.2.1 as of version 3.6.7. Includes APIs for building modular scripts including a "do node" counterpart to Lua's "dofile" function. Scripts can be invoked from plain text files, document nodes, abbreviation expansion templates, or plugin extensions and can be launched by, inter alia, keyboard shortcuts, toolbar icons, command line switch upon program launch, or more than two dozen event triggers. 280-plus APIs exposed to Lua as of v. 3.6.7, many IDE features.
Five document formats supported natively including encrypted and compressed versions, based on either flat HTML and SQLite. Many import and export formats.
Crazy Ivan Robot
Crazy Ivan Robot Team
Crazy Ivan was the robot that won the RoboCup 2000 in Denmark. Crazy Ivan has a "brain" that uses Lua for scripting language. All AI and logic is done in Lua. The brain is running on a Motorola Coldfire 5206e processor, and Lua is modified to use only int's as the Coldfire has no FPU. Contact: [Erik Hougaard]
pbLua for the LEGO Mindstorms
NXT Hempel Design Group
pbLua is an implementation of Lua 5.1 for the LEGO Mindstorms NXT. It is based on the open-source code for the NXT brick provided by LEGO. The low level drivers were modified slightly and then integrated with the Lua sources. pbLua is an alternative text-based programming environment for the NXT that supports coroutines, strings, tables, and limited floating point operations. The NXT is based on the ARM7 micro with 256K of FLASH and 64K of RAM. pbLua looks like a serial port to a PC and connects via USB. It is completely self contained as it runs the parser right on the brick. Eventually, we'll support the Mac and Linux platforms when we figure out how USB gets enumerated on those platforms.
V-REP (Virtual Robot Experimentation Platform) is a 3D robot simulator based on a distributed control architecture: Lua scripts (i.e. control programs) can be directly attached to scene objects and run simultaneously in a threaded or non-threaded fashion. This makes V-REP very versatile and ideal for multi-robot applications, and allows users to model robotic systems in a similar fashion as in reality - where control is most of the time also distributed.
LuaTeX is an extended version of pdfTeX using Lua as an embedded scripting language. The LuaTeX project's main objective is to provide an open and configurable variant of TeX while at the same time offering downward compatibility. The criteria for choosing Lua was that it was freely available, portable, easy to extend with pdfTeX-specific functionality, small footprint, and also fun to work with.UltraDefrag
UltraDefrag is a disk defragmenter for Windows, which supports defragmentation of locked system files by running during the boot process. It is easy to use without any complicated scripting or a huge load of configuration settings. You can filter the files processed by size, number of fragments, file name and path. You can terminate the process early by specifying an execution time limit.
UltraDefrag uses Lua primarily for interpretation of configuration files and for reading internationalization strings from the 'i18n' subdirectory. Lua is also used to upgrade configuration files, to convert text files from one format to another for reports, and to generate makefiles for the selected build environment and then building the program.
This Web page: https://sites.google.com/site/marbux/home/where-lua-is-used
Finish adding apps from http://lua-users.org/wiki/LuaGraphics.
Check list of apps at https://en.wikipedia.org/wiki/Lua_%28programming_language%29#Other.
ACML6, http://developer.amd.com/community/blog/2014/05/06/acmlscript/ (ACML is the AMD Core Math Library, a library of "useful mathematical
routines optimized for AMD processors".)
http://wiki.mudlet.org/w/Main_Page and http://wiki.mudlet.org/w/Manual:Technical_Manual
http://luaview.esi-cit.com/ and http://www.ni.com/labview/whatis/
http://www.askrprojects.net/software/profilua/index.html and http://www.abacom-online.de/uk/html/produkte.html
http://docs.rainmeter.net/manual/lua-scripting; see also http://rainmeter.net/forum/viewforum.php?f=18&start=250.
GiderosMobile to IDEs, http://www.giderosmobile.com/benefits/
https://www.madewithmarmalade.com/ (support for embedding Lua in apps).
Add Notion, a fork of Ion. http://notion.sourceforge.net/notionconf/
https://masterbranch.com/lua-projects (Over 3300 hits for Lua-related projects).
Add apps from http://lua-users.org/wiki/LuaGraphics
Check these for editors that do more with Lua than syntax highlighting. http://lua-users.org/wiki/LuaEditorSupport
Corona SDK http://www.anscamobile.com/corona/ Corona SDK is the world's #1 tool for cross-platform mobile development
There are some interesting links here: http://lua-users.org/wiki/LuaDistributions
Leads to more apps to include in the page: http://en.wikipedia.org/wiki/Category:Lua-scriptable_hardware
These are the debian packages that depend on the vanilla-lua-VM and
$ apt-rdepends -r liblua5.1-0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reverse Depends: aqualung (0.9~beta11-1.2)
Reverse Depends: asc (126.96.36.199-1+b3)
Reverse Depends: asterisk-modules (1:188.8.131.52~dfsg-1)
Reverse Depends: awesome (3.4.11-1)
Reverse Depends: bam (0.4.0-3)
Reverse Depends: blobby (0.9c-1)
Reverse Depends: blobby-server (0.9c-1)
Reverse Depends: boswars (2.6.1-2)
Reverse Depends: btanks (0.9.8083-3)
Reverse Depends: celestia-glut (1.6.1+dfsg-1)
Reverse Depends: celestia-gnome (1.6.1+dfsg-1)
Reverse Depends: conky-std (1.8.1-6)
Reverse Depends: crawl (2:0.9.1-1)
Reverse Depends: crawl-tiles (2:0.9.1-1)
Reverse Depends: crossfire-client (1.60.0-3)
Reverse Depends: crtmpserver (0.0~dfsg+svn611.1-2)
Reverse Depends: crtmpserver-apps (0.0~dfsg+svn611.1-2)
Reverse Depends: crtmpserver-libs (0.0~dfsg+svn611.1-2)
Reverse Depends: deets (0.1.2-1)
Reverse Depends: devilspie2 (0.17-1)
Reverse Depends: diod (1.0~pre59-1)
Reverse Depends: ekeyd (1.1.5-2)
Reverse Depends: freeciv-client-extras (2.3.1-1)
Reverse Depends: freeciv-server (2.3.1-1)
Reverse Depends: freepops (0.2.9-5)
Reverse Depends: geany-plugin-lua (0.21.1.dfsg-1)
Reverse Depends: gimp-gluas (0.1.20-1)
Reverse Depends: grafx2 (2.3-1)
Reverse Depends: gringo (3.0.3-7)
Reverse Depends: haserl (0.9.29-3)
Reverse Depends: hedgewars (0.9.17-1)
Reverse Depends: highlight (3.6-1)
Reverse Depends: httest (2.1.10-1)
Reverse Depends: ibus-pinyin (1.4.0-1)
Reverse Depends: imapfilter (1:2.2.3-1+b1)
Reverse Depends: instead (1.6.0-1)
Reverse Depends: ipe (7.1.2-1)
Reverse Depends: libapache2-modsecurity (2.5.13-1)
Reverse Depends: libcegui-mk2-0.7.5 (0.7.5-8)
Reverse Depends: libcegui-mk2-1 (0.6.2-5.1)
Reverse Depends: libcsound64-5.2 (1:5.14.2~dfsg-2)
Reverse Depends: libdballe5 (5.10-1.1)
Reverse Depends: libedje-bin (1.0.0-1)
Reverse Depends: libedje1 (1.0.0-1)
Reverse Depends: libeiskaltdcpp2.2 (2.2.5-1)
Reverse Depends: libgv-lua (2.26.3-9)
Reverse Depends: libhighlight-perl (3.6-1)
Reverse Depends: libipe7.1.2 (7.1.2-1)
Reverse Depends: liblua5.1-0-dbg (= 5.1.4-12)
Reverse Depends: liblua5.1-0-dev (= 5.1.4-12)
Reverse Depends: liblua5.1-oocairo0 (1.4-1)
Reverse Depends: liblua5.1-oopango0 (1.1-1)
Reverse Depends: liblua5.1-rrd0 (1.4.3-3.1+b3)
Reverse Depends: libluabind0.9.1 (0.9.1+dfsg-4)
Reverse Depends: libluabridge-ruby1.8 (0.7.0-1)
Reverse Depends: libquvi0 (0.2.15-1)
Reverse Depends: librpm2 (184.108.40.206-1+b1)
Reverse Depends: librpmio1 (4.8.1-6)
Reverse Depends: librpmio2 (220.127.116.11-1+b1)
Reverse Depends: libtaoframework-lua5.1-cil (2.1.svn20090801-7)
Reverse Depends: libtokyotyrant3 (1.1.40-4.1)
Reverse Depends: libtolua++5.1-dev (1.0.93-2)
Reverse Depends: libtolua-dev (5.1.3-1)
Reverse Depends: libwireshark1 (1.6.5-1)
Reverse Depends: libwreport2 (2.1-1)
Reverse Depends: liferea (1.6.5-1.2+b1)
Reverse Depends: lighttpd-mod-cml (1.4.30-1)
Reverse Depends: lighttpd-mod-magnet (1.4.30-1)
Reverse Depends: love (0.7.2-1)
Reverse Depends: lsyncd (2.0.5-1)
Reverse Depends: luakit (2011.07.22-r1+1015-1)
Reverse Depends: megaglest (18.104.22.168-2)
Reverse Depends: monotone (1.0-3)
Reverse Depends: mysql-proxy (0.8.1-1.1+b1)
Reverse Depends: nbibtex (0.9.18-10)
Reverse Depends: netpanzer (0.8.4.debian.1-1)
Reverse Depends: nginx-extras (1.1.12-1)
Reverse Depends: nmap (5.21-1.1)
Reverse Depends: ocropus (0.3.1-4)
Reverse Depends: onscripter (20120115-1)
Reverse Depends: opendkim (2.1.3+dfsg-1+b1)
Reverse Depends: pdns-backend-lua (3.0-1.1)
Reverse Depends: pdns-recursor (3.3-2)
Reverse Depends: pdns-server (3.0-1.1)
Reverse Depends: postgresql-9.1-pllua (1:0.3.2-4)
Reverse Depends: premake (3.7-1)
Reverse Depends: prosody (0.8.2-1)
Reverse Depends: quvi (0.2.15-1)
Reverse Depends: radare-common (1:1.5.2-4+b1)
Reverse Depends: simgrid (3.6.2-1)
Reverse Depends: tagua (1.0~alpha2-9+b1)
Reverse Depends: termit (2.6.0-1)
Reverse Depends: texworks-scripting-lua (0.5~svn952-1)
Reverse Depends: tokyotyrant (1.1.40-4.1)
Reverse Depends: tokyotyrant-utils (1.1.40-4.1)
Reverse Depends: ulatencyd (0.5.0-4)
Reverse Depends: vim-athena (2:7.3.363-1)
Reverse Depends: vim-gnome (2:7.3.363-1)
Reverse Depends: vim-gtk (2:7.3.363-1)
Reverse Depends: vim-nox (2:7.3.363-1)
Reverse Depends: vlc-nox (1.1.13-1)
Reverse Depends: weechat-plugins (0.3.6-2+b1)
Reverse Depends: wesnoth-1.8-core (1:1.8.6-1)
Reverse Depends: wesnoth-1.8-server (1:1.8.6-1)
Reverse Depends: widelands (1:16-1+b1)
Reverse Depends: wordgrinder (0.3.3-1)
Reverse Depends: xmoto (0.5.5-1)
However,compare that to the number of packages that use the vanilla interpreter binary and depend on that:
$ apt-rdepends -r lua5.1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reverse Depends: ekeyd (1.1.5-2)
Reverse Depends: liblua5.1-json (1.2.2-1)
Reverse Depends: liblua5.1-wsapi-fcgi-1 (1.5-1)
Reverse Depends: liblua5.1-wsapi1 (1.5-1)
Reverse Depends: lsyncd (2.0.5-1)
Reverse Depends: lua5.1-policy-dev (33)
Reverse Depends: luadoc (3.0.1-3)
Reverse Depends: luarocks (2.0.2-1)
Reverse Depends: nbibtex (0.9.18-10)
Reverse Depends: prosody (0.8.2-1)
Reverse Depends: shake (1.0.1-6)
Reverse Depends: sputnik (9.03.13+1-4)
Reverse Depends: syncmaildir (1.2.2-1)
Reverse Depends: ulatencyd (0.5.0-4)
One commenter mentioned that Lua is used heavily in the Squeezebox system (embedded Linux for Logitech networked multimedia appliances, formerly known as Jive). I did a bit of googling and indeed, Lua is deeply integrated in Squeezebox from the OS kernel to user interfaces and user-created applet plugins, see e.g., <http://wiki.slimdevices.com/index.php/SqueezeOS_Architecture#LUA>.
But Logitech recently discontinued use and development of Squeeze OS for all but one internet "radio" product, although they've committed to continue support for Squeeze and existing appliances. <http://reviews.cnet.com/8301-33199_7-57519226-221/logitech-leaves-squeezebox-fans-wondering-whats-next/>.
The successor system is called "ue". I haven't found the mother lode of Lua documentation for it yet, but the user forums suggest that Lua 5.1 is heavily involved there too. See <http://forums.logitech.com/t5/forums/searchpage/tab/message?filter=labels&q=lua+#message-list> (user forum search for "lua " produces 89 pages of hits).