Lua: The Little Language That Could

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

    LÖVE is an awesome 2D game framework for Lua.

  • Just gonna add to the Lua love. I was also introduced to it by LOVE2D and revisted it Redbean. In terms of ergonomics, it is still my favorite programming language; I find it very easy to read and reason about, and I credit that to its minimalism.

    [1] https://love2d.org/

    [2] https://redbean.dev/

  • luau

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

  • https://www.youtube.com/results?search_query=luau+roblox&sp=...

    Luau

    https://github.com/Roblox/luau

    Roblox wrote a superset of Roblox Lua which is way faster

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

    Object-orientation for Lua

  • The ConTeXt typesetting system tightly integrates Lua. One aspect of Lua that I dislike is its inability to easily write OOP-ish code. What's impressive about the language is that it can be extended to do so in astonishingly little code:

    * https://github.com/kikito/middleclass

    With OOP in place, I was able to typeset a hexagonal grid and a symbolic representation of a neural network on top, using a more OOP-like approach. The classes are straightforward.

    A vertex defines a point in 2D space:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    An edge connects two vertices:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    A graph connects edges:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    A priority queue serves for ordering graph edges by weight of adjoining vertices:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    With these concepts in hand, we can typeset a grid and a "neural network" on top:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    Here's an example of the output for chapter 1:

    * https://i.ibb.co/19DCDZy/ch-1.png

    And chapter 14, where the "network" has grown in complexity:

    * https://i.ibb.co/ncf16vg/ch-2.png

    This is for my near future hard sci-fi book on AGI. I'm looking for alpha readers to give me feedback. See profile for contact details.

  • keenwrite-themes

    Discontinued Document typesetting configurations using ConTeXt

  • The ConTeXt typesetting system tightly integrates Lua. One aspect of Lua that I dislike is its inability to easily write OOP-ish code. What's impressive about the language is that it can be extended to do so in astonishingly little code:

    * https://github.com/kikito/middleclass

    With OOP in place, I was able to typeset a hexagonal grid and a symbolic representation of a neural network on top, using a more OOP-like approach. The classes are straightforward.

    A vertex defines a point in 2D space:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    An edge connects two vertices:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    A graph connects edges:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    A priority queue serves for ordering graph edges by weight of adjoining vertices:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    With these concepts in hand, we can typeset a grid and a "neural network" on top:

    * https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...

    Here's an example of the output for chapter 1:

    * https://i.ibb.co/19DCDZy/ch-1.png

    And chapter 14, where the "network" has grown in complexity:

    * https://i.ibb.co/ncf16vg/ch-2.png

    This is for my near future hard sci-fi book on AGI. I'm looking for alpha readers to give me feedback. See profile for contact details.

  • embedded-scripting-languages

    A list of embedded scripting languages

  • > There is a huge opportunity, IMO, for more players here.

    There are quite a few embeddable scripting languages [1]. I think these days it's less common to embed a language mostly because there are good high-level languages that applications can be predominantly written in.

    [1] https://github.com/dbohdan/embedded-scripting-languages

  • piccolo

    An experimental stackless Lua VM implemented in pure Rust (by kyren)

  • There's Lua implementation [1] in pure Rust, by the way.

    [1] https://github.com/triplehex/piccolo

  • imapfilter

    IMAP mail filtering utility

  • My first real exposure to Lua was as the configuration language of imapfilter. Absolutely loved both.

    https://github.com/lefcha/imapfilter

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

    Dev environments. In your web app.

  • > Wasm though seems like the likely general heir, and will have many different offerings for how to do that (Deno being one!).

    I was recently blown away by some ideas that StackBlitz [0] apply based on WebContainers. The idea of a "server in the browser", they allow you to run Node-based environment like that via Wasm.

    [0] https://stackblitz.com/

    [1] https://webcontainers.io/

  • core

    Online IDE powered by Visual Studio Code ⚡️ (by stackblitz)

  • > Wasm though seems like the likely general heir, and will have many different offerings for how to do that (Deno being one!).

    I was recently blown away by some ideas that StackBlitz [0] apply based on WebContainers. The idea of a "server in the browser", they allow you to run Node-based environment like that via Wasm.

    [0] https://stackblitz.com/

    [1] https://webcontainers.io/

  • guix

    Read-only mirror of GNU Guix — pull requests are ignored, see https://guix.gnu.org/en/manual/en/guix.html#Submitting-Patches instead (by guix-mirror)

  • I think a "competitor" to Lua would be Guile [1], but I am not sure if it gets close to Lua in terms of lightweightness... it was designed to be used in the GNU project, with similar objects as Lua: to be light, easily embeddable. It's a Scheme (Lisp) so maybe not for everyone's taste... its "coolest" use i know of is for configuring Guix [2] (the GNU version of Nix).

    [1] https://www.gnu.org/software/guile/

    [2] https://guix.gnu.org

  • Prosody IM

    IMPORTANT: due to a drive failure, as of 13-Mar-2021, the Mercurial repository had to be re-mirrored, which changed every commit SHA. The old SHAs and trees are backed up in the vault branches. Please migrate to the new branches as soon as you can.

  • There's also the http://prosody.im/ XMPP server that's written in Lua, and it's very successful there. The other major XMPP server implementation is in Erlang and they are equally praised, so that should tell something about Lua's versatility.

  • flirt

    Automatic version selector for LÖVE

  • I think its this but I am unsure.

    https://github.com/Alloyed/flirt

  • lines.love

    An editor for plain text where you can also seamlessly insert line drawings

  • Great question! It's not ideal, but has been outweighed so far by the other benefits I mentioned. I do track the issues I run into due to lack of static types[1] in the Manual_tests files in each of my projects, e.g. https://github.com/akkartik/lines.love/blob/e568378ecb/Manua...

    [1] I wouldn't say Lua/Python/Javascript has no types. They just lack types for variables rather than values. Forth, on the other hand, has no types period.

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