Lua's Lack of “Batteries”

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
  • pallene

    Pallene Compiler

  • Have I got a treat for you!

    http://terralang.org/

    https://github.com/pallene-lang/pallene

  • Penlight

    A set of pure Lua libraries focusing on input data handling (such as reading configuration files), functional programming (such as map, reduce, placeholder expressions,etc), and OS path management. Much of the functionality is inspired by the Python standard libraries.

  • I'm very surprised there was no mention of Penlight in that article. Penlight, a supplemental standard library for Lua that is heavily inspired by Python's own standard library, has been around for years now:

    https://github.com/lunarmodules/Penlight

  • 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
  • tl

    The compiler for Teal, a typed dialect of Lua

  • Lua is a bit weird and I think it's actually the strong point on favour of Lua (besides the obvious: nice performance and great portability). We need more variability to explore different ways to achieve our goals and to suit widest range of preferences. I'd love to see a big and strong standard library for the language to see it used for wider variety of tasks.

    In my extremely limited experience with Lua, the only thing that I definitely didn't like was its weak-ish dynamic typing, so I'd been keeping my eye on tl[1] and wu-lan[2] which both transpile to Lua for a while.

    1. https://github.com/teal-language/tl

    2. https://github.com/wu-lang/wu

  • inspect.lua

    Human-readable representation of Lua tables

  • For more complex string matching tasks that the built-in patterns cannot handle, LPeg is a good choice. It's more powerful than regexes while also being easy to use. I also wouldn't expect something like PCRE to ever be included in the Lua standard library. PCRE by itself would already be larger than the rest of the Lua interpreter + standard library.

    By the way, for formatting Lua tables I like using inspect[1]. (It's not part of the standard library but oh well, that's the whole topic of today's discussion).

    https://github.com/kikito/inspect.lua

  • heart

    A high performance Lua web server with a simple, powerful API

  • This is really timely article for me. I just chose to use Lua in a brand new project (https://github.com/Hyperspace-Logistics/heart) and lot of the criticism so far has been “why Lua?”

    Personally I think it’s very capable language. It’s such a comfortable scripting language that I think nearly anybody could pick up and get up to speed pretty quickly. LuaJIT is also ridiculously powerful and so satisfyingly stable (Lua 5.1 for over a decade).

    Heck Lua 5.1 even makes an excellent transpile target so you might not even need to use Lua to appreciate the software that runs on Lua.

  • gravity

    Gravity Programming Language

  • This is gonna be subjective, because it depends on what your priorities are.

    The two alternatives at the top of my list are Gravity and Wren. They are both designed for the same general profile that Lua has—a scripting language, safe to use, embeddable, with a small VM (low code size).

    - https://github.com/marcobambini/gravity

    - https://wren.io/

    The language design choices are nice and familiar to people who are used to other existing languages. Lua is a bit radical.

    Two other options are AngelScript and Squirrel, which are both a bit older and more mature than Gravity and Wren. In my opinion they are

    - http://www.angelcode.com/angelscript/

    - http://squirrel-lang.org/

    Finally, it’s much more feasible these days to embed something like Mono, and Guile has gotten a lot better.

  • luaforwindows

    Lua for Windows is a 'batteries included environment' for the Lua scripting language on Windows. NOTICE: Looking for maintainer.

  • Having a set of "blessed" libraries has definitely been discussed on the mailing list. Also there are plenty of "distributions" like Lua for Windows[1], LuaPower[2], or runtimes like Luvit[3] that add features ootb.

    That said - the Lua ecosystem in 2021 is not the same as it was in 2005 or whenever people compare it to. There is a healthy amount of Libraries and choices of libraries for solving most tasks on Luarocks. And I would suggest you produce a better end project by selecting which libraries are included in your project that uses Lua for scripting. You can even further remove your choice of the libraries that _are_ included ootb.

    [1] - https://github.com/rjpcomputing/luaforwindows

    [2] - https://luapower.com/

    [3] - http://luvit.io/

  • 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
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