The talk was centered on Ratatui (a TUI library in Rust, https://ratatui.rs/) now targeting terminals and web browsers with a shared approach. Video recording of the talk should appear online soon.
Looks interesting, but it's not at all responsive. I can't view it without making my window larger than my screen and manually sliding it back and forth. Even basic TUIs know their output size. I know it's a UI demo, but that seems pretty basic.
How is this still so hard? Tk basically had this figured out 25 years ago.
It's a super early release and the project itself is pretty fresh, and that's also how it was announced today at FOSDEM, so we can expect improvements.
I’m totally ignorant on this and don’t understand. How is WebAssembly helpful for terminal UI apps and why has it been chosen here? Is it mainly for easier cross platform support (with the UI being HTML and then translated for the terminal)? How does it compare on ease of development, testing, maintenance effort, etc., to other terminal UI libraries?
It's the other way around: there's an existing ratatui library that is pretty nice for making rich terminal UIs, and since ratatui is written in Rust, the easiest way of porting it to the web is through WASM.
Exactly, Ratatui can bring terminal
aesthetics to web but it also works the other way around. A lot of the modern terminal aesthetics is inspired by the web. It is not real
80s, more faux 80s.
Ratatui's creator had an excellent talk about this at FOSEM which basically was structured into these two chapters.
OP here, thanks for posting the project. The FOSDEM talk will be also available soon I hope.
I'm planning to focus more on responsiveness and adding more web-only widgets for the next releases. Of course there are a lot of other things to fix & improve :)
Let me know if you have any specific feedback or ideas!
We've built a pretty complex CLI using Ratatui and so far we like it a lot. Exciting at the web targets I wasn't aware of this and might make our lives a lot easier for something we want/need to do.
Switching tabs doesn't seem to overwrite the vertical lines, I have pink and green pipes drawn on the 2nd and 3rd tab that were supposed to only be on the first one.
You find this everywhere in the tech community. Especially places like github. Posts about software where there is no explanation whatsoever as to what it does or why.
It's impossible to explain everything from the beginning. You might not be the target audience and the software/blog post was unwittingly posted. And sometimes, people just put things on the web for shits and giggles with no audience in mind. With no audience in mind, you don't feel the need to explain anything.
Anyway, HN fulfills that need. HN is widely-read that it's likely SOMEONE knows what the hell something is, and if often willing to give a summary. So if you're befuddled, just read the comments.
I swear this isn’t an “rtfm” dig, but in the case that this report of flickering is the first you’ve been made aware of it (and so you haven’t dug into it yet) I recently had to deal with this when experimenting with WebGL for the first time and found this thread to be full of information. https://stackoverflow.com/questions/19764018/controlling-fps...
A few of the suggestions “work”, but in the end I went with the accepted answer, only modified to use window.performance.now() rather than Date.now() from the accepted answer.
There are more suggestions that make sense but I haven’t tried that include using multiple threads, calling setInterval/setTimeout in a separate thread for CPU work from the rAF() call (which is GPU and should not update if there is nothing to update) but this wasn’t immediately helpful to me so I went with the elapsed time test and explicit frameRate. There are some potential sync issues over time but they are discussed in the SO thread and additionally on the mozilla developer site, where they also discuss syncing to an audio clock at 60 Hz.
This is a demo that was just showcased live by the author as part of their talk at FOSDEM'25: https://fosdem.org/2025/schedule/event/fosdem-2025-5496-brin...
The talk was centered on Ratatui (a TUI library in Rust, https://ratatui.rs/) now targeting terminals and web browsers with a shared approach. Video recording of the talk should appear online soon.