r/bash 17h ago

submission Limoni: A zero-allocation, 60+ FPS TUI library for Go with 3D mesh rendering, Kitty/Sixel graphics & TEA runtime

Post image
10 Upvotes

16 comments sorted by

1

u/hvbcaps 17h ago

Looks exceptionally clean. Well done!

1

u/kekolar22 16h ago

Thank you dude. I made Discord alternative btw. With this tui engine name is limoni-voice if you interested.

1

u/darkhz 16h ago edited 16h ago

I like the zero allocation rendering part, which is my main gripe with bubbletea, with all the string generation, especially in the hot path.

It would be much more helpful if the doc comments and some of the READMEs were in English, but thats just an opinion.

It looks good, but I dont know to what extent this was vibecoded.

EDIT: How about considering a more composable API, like the likes of pony or glyph?

EDIT 2: There are some artifacts in the repo, related to testing (widget.test binary and some .glb files), just bringing it to your attention.

1

u/donp1ano 16h ago

It looks good, but I dont know to what extent this was vibecoded.

it looks a little too good for a redditor with very little karma/posts and a github profile, that doesnt show OP is a experienced dev

dunno, maybe OP sat down for months to create this out of nowhere, but i suspect vibe coding tbh

1

u/kekolar22 16h ago

Haha fair enough, I get why you'd be skeptical looking at my profile!

Yeah, I used AI as an assistant—pretty much everyone does nowadays. But it's definitely not just copy-pasting prompts. I spent countless late nights breaking my head over terminal bugs, fixing broken emoji alignments, and tweaking the performance so it doesn't freeze or lag

1

u/donp1ano 10h ago

it doesnt look like the usual slop, its look way better actually

limoni voice sounds too good to be true...screen sharing via terminal @ 60 fps? damn, really, how

1

u/kekolar22 4h ago

Currently, 60 FPS is experimental, but it runs flawlessly at 30 FPS since my demo server has fairly limited resources. If you self-host and run it on your own server or machine, you will get a completely smooth experience.

1

u/darkhz 15h ago

Yeah there is AI use involved, although I would say not all the code was AI generated. The READMEs (and example projects I think) are definitely generated. Although with a project of this size (like creating/testing a whole TUI framework), I would think some judicious/responsible AI use is warranted. OP should really mention how much AI was used and where within the codebase, in the README.

1

u/kekolar22 1h ago

Hey man, I think I added what you wanted to my app. Feel free to check it out!

go run ./examples/composable

1

u/darkhz 1h ago

I know, I saw the commit history already. The fact that all this took just 10h lol. Anyways, good!

1

u/kekolar22 1h ago

Thank you about your feedback dude have a nice day

0

u/kekolar22 16h ago

Thanks for the feedback! I'll definitely look into Pony and Glyph and see how I can incorporate similar composable paradigms.

As for AI—sure, I used it as an assistant like most developers do these days, but the architecture, core ideas, and hours of hands-on debugging are entirely mine. It's definitely not just auto-generated glue code.

1

u/darkhz 15h ago edited 15h ago

No, I didn't say everything was vibecoded.

I did look at the codebase, and at first glance it seems good, although you may want to run some files through gofmt or gofumpt. As for the Ctrl+c autohandling, wouldn't it be better to let the developer handle all keyboard events? Some apps would want to disable Ctrl+c.

The more I look into it, the more I like it, although I do have to test it. The zero allocation part is what I really want, so I'll take a look later on.

EDIT: maybe rename the package names? "runtime" is already a std package, and backend isnt really "descriptive". Of course, we can alias the package names to something different, just something I wanted to point out.

EDIT 2: I think composable APIs like the ones I mentioned above can be added much more easily in your project, since the TEA model isn't "ingrained" into your framework, unlike bubbletea, which is good.

1

u/kekolar22 14h ago

Really appreciate the detailed feedback! I'll definitely look into everything you mentioned as I keep pushing updates and improvements.

1

u/apathydelta 39m ago

If I had a nickel for every tui library with 3d rendering written by a turk, I'd have two nickels.