rooibos

 CI  License  Gem Total Downloads  Gem Version image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iaWNvbiBpY29uLXRhYmxlciBpY29ucy10YWJsZXItb3V0bGluZSBpY29uLXRhYmxlci1tYWlsIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMyA3YTIgMiAwIDAgMSAyIC0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxIC0yIDJoLTE0YTIgMiAwIDAgMSAtMiAtMnYtMTB6IiAvPjxwYXRoIGQ9Ik0zIDdsOSA2bDkgLTYiIC8+PC9zdmc+Cg==: Discussion image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iaWNvbiBpY29uLXRhYmxlciBpY29ucy10YWJsZXItb3V0bGluZSBpY29uLXRhYmxlci1tYWlsIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMyA3YTIgMiAwIDAgMSAyIC0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxIC0yIDJoLTE0YTIgMiAwIDAgMSAtMiAtMnYtMTB6IiAvPjxwYXRoIGQ9Ik0zIDdsOSA2bDkgLTYiIC8+PC9zdmc+Cg==: Bug Reports image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iaWNvbiBpY29uLXRhYmxlciBpY29ucy10YWJsZXItb3V0bGluZSBpY29uLXRhYmxlci1tYWlsIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMyA3YTIgMiAwIDAgMSAyIC0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxIC0yIDJoLTE0YTIgMiAwIDAgMSAtMiAtMnYtMTB6IiAvPjxwYXRoIGQ9Ik0zIDdsOSA2bDkgLTYiIC8+PC9zdmc+Cg==: Announcements

Introduction

rooibos is a gem in the RatatuiRuby ecosystem. ratatui_ruby is a community wrapper that is not affiliated with the Ratatui team.

[!WARNING] rooibos is currently in BETA. The API may change with minor versions.

Why RatatuiRuby? — Native Rust performance, zero runtime overhead, and Ruby’s expressiveness. See how we compare to CharmRuby, raw Rust, and Go.

Please follow the announcements to stay up-to-date on new releases. See the trunk branch for pre-release updates.


The Ecosystem

RatatuiRuby: Core engineRooibos: MVU architectureKit: Component architecture (Planned)• DSL: Glimmer syntax (Planned)• Framework: Omakase framework (Planned)• UI: Polished widgets (Planned)• UI Pro: More polished widgets (Planned)

For App Developers

Get Started: QuickstartExamplesStay Informed: AnnouncementsFAQReach Out: ForumBug Tracker

For Contributors

Get Started: Contributing GuideCode of ConductStay Informed: AnnouncementsFAQReach Out: ForumBug Tracker


Compatibility

rooibos is designed to run on everything Ruby does, including:

We support the latest minor version of every non-eol Ruby version, including Ruby 4.

Installation

Add this line to your application’s Gemfile:

gem "rooibos"

And then execute:

bundle install

Or install it yourself with:

gem install rooibos

Usage

rooibos uses the Model-View-Update (MVU) pattern. You provide an immutable model, a view function, and an update function.

Model = Data.define(:text)

Init = -> do
  Model.new(text: "Hello, Ratatui! Press 'q' to quit.")
end

View = -> (model, tui) do
  tui.paragraph(
    text: model.text,
    alignment: :center,
    block: tui.block(
      title: "My Ruby TUI App",
      borders: [:all],
      border_style: { fg: "cyan" }
    )
  )
end

Update = -> (msg, model) do
  if msg.q? || msg.ctrl_c?
    Rooibos::Command.exit
  else
    model
  end
end

def run
  Rooibos.run(VerifyReadmeUsage)
end

Hello Ratatui

For a full tutorial, see the Quickstart. For an explanation of the application architecture, see Scaling Up.

Features

Because this gem is in beta, it lacks documentation. Please check the source files.

Documentation

Resource Description
Quickstart Get running in 5 minutes
Scaling Up Patterns for scaling your app
Guides Tutorials, examples, and more
API Reference To generate full RDoc documentation, run bundle exec rake rdoc
Ecosystem Learn more about the RatatuiRuby ecosystem

Contributing

The discussion forum is the best place to ask questions, share patches, and get feedback. Report bugs on the bug tracker. All participants follow the Code of Conduct.

Want to help develop rooibos? Check out the contribution guide.

Note: Active development happens on the trunk branch. Use trunk if you are a contributor or want the latest cutting-edge features. stable is for stable releases only.

rooibos is copyright 2026, Kerrick Long.

The library is LGPL-3.0-or-later: you can use it in proprietary applications, but you must share changes you make to rooibos itself. Documentation snippets and widget examples are MIT-0: copy and use them without attribution.

Documentation is CC-BY-SA-4.0. Build tooling and full app examples are LGPL-3.0-or-later. See each file’s SPDX comment for specifics.

Some parts of this program are copied from other sources under appropriate reuse licenses, and the copyright belongs to their respective owners. See the REUSE Specification – Version 3.3 for details.

This program was created with significant assistance from multiple LLMs. The process was human-controlled through creative prompts, with human contributions to each commit. See commit footers for model attribution. declare-ai.org