|
|
|
|
|
by rockorager
1040 days ago
|
|
https://git.sr.ht/~rockorager/vaxis A(nother) golang TUI library. Targeting modern terminal features, and a few different APIs for building applications. I really like notcurses, but the CGO cost when setting individual cells is very high...so this was my attempt to "port" what notcurses does to go. I handle things a little differently than notcurses, but in general am taking a lot of the same approaches for finding out terminal capabilities. Just not nearly as many optimizations when it comes to the render side (but Vaxis can render at about 5000 FPS in typical cases, so I haven't tried to optimize anything more there than it already is). The main design decision I am going back and forth on how much I have used globals. Initially the design was a big struct, but I liked being able to use globals so when I write widgets as part of the library, they can send messages into the event queue without needing access to an application struct or something. I can't think of a single use case where a user would need more than one instance, so globals have seemed fine (and even notcurses says you can have only one notcurses instance per process...so I'm not even straying from that). Thanks for any feedback! |
|