Lua - Reddit – Telegram
Lua - Reddit
30 subscribers
278 photos
31 videos
4.23K links
News and discussion for the Lua programming language.

Subreddit: https://www.reddit.com/r/lua

Powered by : @r_channels & @reddit2telegram
Download Telegram
Working on a Lua TUI Compositor.

I wrote my own simple little "Window Engine" as I like to call it, as my four brain cells can't think of a better name.

Basically all it does is draw boxes, circles, and windows in a terminal window without the fuss of manually defining the size and all the writable space.

The source code for the "Window Engine" can be found here (do excuse the poor repository, my first time doing a serious project...)

Screenshot of this in action, in the included starfield demo.



https://redd.it/1pgoat5
@r_lua
Full-stack event-sourced demo app written entirely in Lua

Hello all,

I have created a demo called Todoodle that demonstrates a full-stack application written entirely in Lua using TENUM’s artifact-based approach. It’s a todo app built with CQRS + event sourcing for the domain logic and a reactive UI layer (LuAct) for the frontend.

The project includes:

* Entities with commands/events/queries (todo.e.lua, todoList.e.lua)
* UI components written in Lua (CreateTodo.uie.lua, TodoItem.uie.lua, etc.)
* Spec files for testing the domain logic
* A development flow with live preview and test watcher

The goal is to explore what a full-stack workflow in pure Lua can look like, without build noscripts or infrastructure code. I’d be very interested in feedback from the community on the workflow, design choices, and expected tooling.

We also plan to provide an open-source version of the framework, and this demo helps validate the approach.

If you’d like to try it:

checkout: [https://github.com/TENUM-Dev/todoodle](https://github.com/TENUM-Dev/todoodle)

npm install -g u/tenum_dev/tdm-cli

tdm test --watch 

tdm preview




or simply watch the demo video:

[https://www.youtube.com/watch?v=Acxfu-IhqKs](https://www.youtube.com/watch?v=Acxfu-IhqKs)

Thanks, and I’d appreciate any thoughts or critique.

https://redd.it/1phdngq
@r_lua
I need help with this noscript error Players.Username.CoreScript(Local):35: Expected ')' (to close '(' at line 14), got 'UIS'

UIS.InputBegan:Connect(function(Input, processed)
if Input.UserInputType == Enum.UserInputType.Keyboard and not processed then
if Input.Keycode == Enum.KeyCode.LeftShift then
Player.Character.Humanoid.WalkSpeed = 32
Running = true

i already define UIS as UserInputService

local UIS = game:GetService("UserInputService")

https://redd.it/1phj0es
@r_lua
ion (JSON Inspired Data Format)

I've spent quite some time attempting to perfect this simple module, and have today decided to attempt to share it. I do not doubt the coding might not be very good, but I at least hope it performs what it's designed for, and that's storing a table using as many space saving shortcuts as possible. I also do not expect it to be perfect at what it tries to achieve either.

There's example code here, but I will still provide some simple example usage.

local ion = require("ion") -- for getting the module
local database = {"Bob","Mary"}
ion.Create(database,"database")

The resulting created ion will look like this:

|ion:{
1:|Bob
2:|Mary
}

And, it can be turned back into a table like so:

local ion = require("ion")
local database = ion.Read("database.ion")

ion.Create() in particular has a lot more parameters for fine tuning what gets written to the resulting ion, but for now that's all this post needs I suppose.



The GitHub Pages Site:

https://nibiritheman.github.io/ion.lua/

https://redd.it/1pixnj5
@r_lua
Alpha Release of TENUM – Lua on Kotlin Multiplatform (Open Source)

Hello everyone,

we are excited to announce that the alpha version of TENUM, our Lua runtime and toolchain built on Kotlin Multiplatform, is now available as open source.

GitHub: [https://github.com/TENUM-Dev/tenum](https://github.com/TENUM-Dev/tenum)

TENUM aims to make Lua a first-class citizen across modern platforms by compiling to JVM, JavaScript, Linux, Windows, and macOS from a single Kotlin codebase. The project provides a foundation for building full-stack Lua applications without custom C toolchains, while still keeping Lua's simplicity and embedability.

Current Alpha Features:

* Lua interpreter implemented in Kotlin
* tlua (interactive interpreter)
* tluac (compiler runner)
* Multiplatform builds (JVM, JS, native targets)
* Published to npm for easy installation: npm install -g u/tenum-dev/tenum

Run the tools using:

tlua

tluac

Goals:

The alpha release is intended to gather community feedback as we continue stabilizing the runtime and improving compatibility with standard Lua behavior and libraries. We would appreciate input on which areas should be prioritized, including tooling, performance, interoperability, APIs, and language compatibility.

Feedback Welcome:

This is an early release, but the core is open and evolving quickly. If you are interested in Lua on JVM, JS, or native platforms, or in building multiplatform Lua applications, please take a look and let us know your thoughts.

Thanks,
The TENUM Team

https://redd.it/1pjtu44
@r_lua
Lua PageMaker: A Lua-powered layout engine for generating magazine-style multi-column pages in LaTeX

I’ve been working on a project that may interest people who enjoy using Lua as a lightweight declarative engine inside other systems.
It’s called Lua PageMaker, and it turns Lua into a page-layout noscripting language for LaTeX.

The idea is simple: Lua computes all frame geometries (columns, banners, figures, sidebars, etc.), then emits flowfram primitives during the TeX run.
This gives LaTeX something close to a mini InDesign—but fully programmable.

---

## What it does

- Arbitrary multi-column layouts, including variable-width columns
- Static boxes (top banners, figures, sidebars, bottom boxes)
- Boxes can span multiple columns
- Page structure is defined in a small, readable Lua DSL
- Coordinates expressed in screen space (origin = top-left, y downward)
- Deterministic layout (all geometry computed before TeX sees text)
- Only depends on LuaLaTeX

---

## Example DSL (pages.lua)

return {
width = 7.88,
height = 10.75,
left = 0.5,
right = 0.5,
top = 0.75,
bottom = 1,

colsep = 0.25,

pages = {
{
columns = {
{ width = 1/3 },
{ width = 1/3 },
{ width = 1/3 }
},
boxes = {
{ name="topbanner", colfrom=1, colto=3, top=0, h=1.0 },
{ name="sidebar", colfrom=2, colto=3, top=1.0, h=2.5 }
}
}
}
}

Lua computes all coordinates, resolves spans, trims columns, and emits compatible flowfram frames.

---

## Why Lua?

LuaTeX provides Lua as an embedded engine, enabling:

- real numeric geometry (no TeX dimension arithmetic)
- custom DSLs
- separation of concerns: geometry in Lua, rendering in TeX
- deterministic, debuggable layout specification
- extensibility and simplicity

The project is intentionally minimalistic: a Lua geometry engine + a declarative page denoscription file.

---

## GitHub

https://github.com/sylvainhalle/lua-pagemaker

---

## Feedback welcome

I’d love to hear ideas about:

- the DSL design
- idiomatic Lua improvements
- extensions to the layout model
- integration with ConTeXt / LuaMetaTeX / SILE

If you try generating your own layouts, please share your results!


https://redd.it/1pk9l28
@r_lua
ZeroBrane installation issues | Linux Ubuntu

My PC runs with the same efficiency as a turnip and so I decided to learn love2d to make games rather than use performance costly game engines. In the tutorial I was watching I had to download and use the ZeroBrane IDE to write noscripts.

When I save the linux download link as an .sh file, give it perms and run it, it gives the error:


Verifying archive integrity...Error in MD5 checksums: 96cd37c6c911cf0d918d98ebca93782a is different from ee3ec7e6138e80b1bce27e6dae079c3b


What is the issue? I have re-downloaded the file multiple times. Thanks.

https://redd.it/1plhw5h
@r_lua
Issues Checking and Comparing Table Values in Lua

Hey all, I'm following a [raycasting tutorial](https://www.youtube.com/watch?v=E18bSJezaUE), and I'm having a little bit of trouble grabbing and comparing values from nested tables. Right now I have a table, Map1, with other tables in it:

local Map1 = {
    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {1,0,0,0,1,0,0,0,1,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {1,1,1,1,1,0,0,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},
    {1,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,0,0,0,1,0,0,0,0,1},
    {1,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
    {1,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
    }


and the way I'm searching through the table for the 0's and 1's is:

function Map1:draw()
    for r, row in ipairs(Map1) do
        for c, v in ipairs(Map1[r]) do
            tile_x = c * TILESIZE
            tile_y = r * TILESIZE
           
            if Map1[r][c] == 0 then
                love.graphics.setColor(0, 0, 0)
                love.graphics.rectangle("fill", tile_x, tile_y, TILESIZE, TILESIZE)
                print("drawn blacks")
            elseif Map1[r][c] == 1 then
                love.graphics.setColor(255, 255, 255)
                love.graphics.rectangle("fill", tile_x, tile_y, TILESIZE, TILESIZE)
                print("drawn whites")
            end
        end
    end
end

and finally, in my main.lua i have:


flocal consts = require("constants")
local map = require("map")


function love.load()
     
end


function love.update(dt)
     
end
 
function love.draw()
      map:draw()
end

I think the check is what's wrong, but I'm not 100% sure. Right now it's checking the value in `Map[r][c]`, which is the same as `v`, but when the code runs it doesn't properly draw the tiles as shown in the table.

https://redd.it/1pltdca
@r_lua
i can't get the lua book
https://redd.it/1plv8z6
@r_lua
LuaJIT Compiler

Successfully managed to make a compiler for luaJIT (a lua 5.1 fork/thing optimized for performance) in python
Works by getting the source code of luajit, rewriting the main .c file to execute a specific noscript instead of whatever you have as the first argument, and using a portable minGW thingy to compile it to EXE. (Dosent actually turn it into assembly, im not that good)

This is compatible with most lua noscripts that work for lua 5.1 or less, and luajit noscripts
Should i make it open source?
(I know luastatic exists, but this is way damn simpler)

https://preview.redd.it/aomysk89817g1.png?width=747&format=png&auto=webp&s=0251c0ce550bcdd15e83b3779bc027b9a6d57b65



https://redd.it/1plvch2
@r_lua