Luau Goes Open-Source

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • luau

    A fast, small, safe, gradually typed embeddable scripting language derived from Lua

  • Actually went ahead and wrote an RFC for this: https://github.com/Roblox/luau/pull/109

  • moonscript

    :crescent_moon: A language that compiles to Lua

  • Heck yeah.

    I don't know what this fork changes, but I love how many game engines will take lua and expand it in major ways like this.

    Very few scripting languages make it as easy to do as lua.

    This is an interesting related project:

    https://moonscript.org/

    It compiles down to lua, and really beefs everything up. Interface is super nice too. You just put `require "moonscript"` at the top of the file and you're done, now just write your code in moon script.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Fennel

    Lua Lisp Language

  • There is also a Fennel[1] that builds a LISP on top of Lua.

    [1] https://fennel-lang.org/

  • kiwi

    Efficient C++ implementation of the Cassowary constraint solving algorithm (by nucleic)

  • If any of the Luau devs are watching this, please flesh out the metamethods. I'd switch almost everything to Luau if they were improved.

    They're the biggest PITA right now as designed in PUC-Rio, and I see that while you've improved upon __eq, other metamethods are still lacking.

    In PUC-Rio, boolean equality operators FORCE a boolean result, regardless of what you return. Ideally they would allow returning any result type, which then can be coerced to boolean later (e.g. by an `if` statement), just like the arithmetic operators do.

    Further, `__neq`, `__ge` and `__gt` do not exist. They should.

    The lack of a proper metamethod design means that binding to e.g. Kiwi[0] is impossible without some incredibly fugly hacks. It has been a long-standing annoyance with Lua in an otherwise beautiful little scripting language (that I use frequently).

    This looks quite nice - lots of attempts in this space but nothing that attempts to match Lua to this degree.

    [0] https://github.com/nucleic/kiwi

  • tl

    The compiler for Teal, a typed dialect of Lua

  • There is Teal language that has type annotations and could output plain Lua: https://github.com/teal-language/tl

  • lua-languages

    Languages that compile to Lua

  • Doubtful, but there is TypescriptToLua: https://typescripttolua.github.io/

    Here's a whole list of languages that compile to Lua (many of them statically typed): https://github.com/hengestone/lua-languages

  • kailua

    Discontinued 🌴 Type Checker and IDE Support for Lua

  • There is a language [1] that type check by adding comments instead of fixing Lua (like Flow comment syntax [2]), I wonder if the Luau team has considered this language.

    [1] https://github.com/devcat-studio/kailua

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • LuaJIT

    Mirror of the LuaJIT git repository (by zewt)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts