Skip to main content

What is Pluto?

Pluto is a superset of Lua 5.5 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development via:

Despite the immense additions, Pluto remains highly compatible with Lua:

  • (Mostly) compatible with Lua 5.5 source code.
    • Our only breakage is the addition of new keywords, which causes conflicts when those keywords are used as identifiers. However, Pluto leverages parser heuristics and — in cases where parser heuristics fail — Compatibility Mode to eliminate this concern. Most Lua 5.5 source code will execute flawlessly on Pluto.
  • Reads and writes Lua 5.5 bytecode meaning it's forwards- and backwards-compatible.
    • Only some Pluto features generate backwards-incompatible bytecode, but they will say so in their documentation.
  • Actively rebases with Lua's main repository. We are not a time-frozen dialect. Initially starting on Lua 5.4, Pluto has successfully performed a gradual rebase onto Lua 5.5.

With Compatibility Mode, Pluto has been dropped into large communities and did not break any existing scripts.

What does Pluto aspire to be?​

Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not.