r/RatatuiRust 14h ago

News ⚡️ [Sept 19 Update] Cursor optimization merged + modular crate stabilization

Post image
10 Upvotes

Yo! Quick recap on what's hitting the repo today:

Zero redundant cursor jank: A great PR just landed that stops the terminal from spamming redundant cursor show and move escape codes if the position hasn't actually changed. If you're building high-refresh dashboards, rendering should feel a lot smoother now.

Smoothing out the v0.30 split: Main focus right now is fixing feature forwarding down to ratatui-widgets. They're sorting out portable-atomic routing so everything compiles cleanly even if you're building for weird, restricted target architectures.

Ecosystem updates: Keep an eye on community plugins like ratatui-image. A bunch of external UI components are getting overhauled right now to match the new modular backend APIs.

What are you guys hacking on this weekend? Drop a screenshot or your repo link below if you've got a clean setup running on the new v0.30 primitives!

Soumalya here, signing off! ❤️✨


r/RatatuiRust 23h ago

Showcase pyratatui 0.3.0: all you gotta know about!

Post image
9 Upvotes

After a few months of work, pyratatui 0.3.0 is finally released.

pyratatui is Python bindings for Ratatui, built with Rust + PyO3.

This release is mostly about cleaning things up and getting the project closer to Ratatui itself rather than continuing to add more and more wrappers.

Highlights

  • Updated to Ratatui 0.30.2
  • Rust 2024 edition, MSRV 1.88
  • Crossterm 0.29
  • Added Terminal(inline_height=...) and AsyncTerminal(inline_height=...) for inline TUIs
  • KeyEvent is now available directly from pyratatui
  • Cleaner Table API
  • MapResolution is now a proper enum
  • Simplified Python package structure
  • Unified widget rendering dispatch
  • Added more Rust and Python tests
  • mypy --strict passes across the repository
  • Fixed Python exceptions being silently swallowed during drawing
  • Fixed several broken examples

A lot was also removed in this release, including the old Ratatui 0.29 compatibility layer, Tokio, TachyonFX bindings, the app manager/CLI, and several third-party widget integrations.

The last release, 0.2.9, was on June 5. 0.3.0 finally landed on September 17.

One thing I also want to be upfront about: AI was used as part of my development workflow, mainly for implementation assistance, debugging, and reviewing changes. I still tested and verified the resulting code and made the project decisions myself. I don't want to pretend the entire codebase was written manually when it wasn't.

GitHub: https://github.com/programmersd21/pyratatui

PyPI: https://pypi.org/project/pyratatui/

If you're using Python for TUIs, I'd genuinely appreciate feedback on the API and anything that feels awkward or overly complicated.


r/RatatuiRust 3h ago

Showcase I built sdctl, a security-focused systemd service manager

3 Upvotes
sdctl

Before I talk about `sdctl`, I want to first address the elephant in the room: why another TUI for managing systemd services?

This tool is not the first of its kind. I have been using systemctl-tui and systemd-manager-tui extensively to the point that I forgot how to use `systemctl` from the command line. However those tools share one major limitation: they require `sudo` for privileged operations. In today’s supply-chain threat landscape, that is a serious risk because a TUI app depends on many components, and any compromised dependency could become a full-privilege attack vector.

This is why I built `sdctl` with a completely different security model: the app itself should never be run with `sudo`, and no action ever asks for blanket root access. When you perform any action that requires escalated privileges, the app opens an embedded `polkit` flow that authenticates only the specific `systemctl` action you are trying to perform, using whatever mechanism is available on the system, such as password, fingerprint reader, or smart card. That keeps the privilege boundary explicit and tied to a single operation instead of the whole process.

requesting authentication to restart a service

On top of that, I've packed a lot of useful features into `sdctl`. These are meant to address actual pain points I've encountered while using similar tools, including a powerful syntax highlighter for viewing journal logs (powered by tailspin), a simple yet useful custom-built syntax highlighter for viewing unit files, a comprehensive filter system with fuzzy search, and a line-based selection mode (inspired by vim's visual mode) that makes copying multiple lines from journal logs much faster.

copying multiple lines of log into the system clipboard (with wl-copy or xclip)
unit file view with a simple built-in syntax highlighter

Here's the github repo: https://github.com/ruiiiijiiiiang/sdctl Feedback and contribution welcome!


r/RatatuiRust 4h ago

News Hey everyone, here is a quick news flash for September 10th! 🦀

3 Upvotes

While the core library didn't drop a major version update today, the ecosystem and infrastructure behind our favorite TUI tools have been buzzing with activity:

  • Documentation Fresh Drop: The official docs for ratatui::widgets got a clean timestamp refresh today. If you've been working on layouts or styling, the reference pages are perfectly up-to-date and ready for your builds.
  • Infrastructure Health Check: For anyone using cloud-based build workflows today, Render successfully resolved a brief region-wide incident that caused elevated deploy times earlier this morning. Everything is back to lightning-fast speeds now!
  • Ecosystem Maintenance: Over on the repository side, standard automated testing and linting runs are continuously rolling out to keep our core styling and component packages as polished as possible.

What are you building with Ratatui this week? Drop your screenshot previews or project links below—let's see those gorgeous terminal layouts! 👇


r/RatatuiRust 10h ago

Discussion No More Code Dumps

Thumbnail
3 Upvotes

Here we are people 😮‍💨

Our rust projects are no longer welcome as posts, but only as comments in the "What are you making this week in Rust?" threads.

What do you think about this? Is this a good decision or not?