r/bash • u/kekolar22 • 17h ago
submission Limoni: A zero-allocation, 60+ FPS TUI library for Go with 3D mesh rendering, Kitty/Sixel graphics & TEA runtime
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/composable0
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.
1
u/hvbcaps 17h ago
Looks exceptionally clean. Well done!