r3bl-org/r3bl-open-core

TUI framework and developer productivity apps in Rust đŸĻ€

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 35 minutes ago
Added to GitGenius on March 23rd, 2024
Created on February 23rd, 2022
Open Issues & Pull Requests: 70 (+0)
Number of forks: 31
Total Stargazers: 478 (+0)
Total Subscribers: 3 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.0 days
Mean response time: 122.9 days
90th percentile: 504.1 days
Tracked items: 86

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 13% of open issues come from outside the core team — the tracker reads mainly as internal planning. Only 7% of issues opened in the past year have been closed. Three people close 100% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 56
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 761 days
Stale 30+ days: 56
Stale 90+ days: 56

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bin: giti đŸ’ģ (29)
  • crate: tui đŸ“Ļ (26)
  • backlog ⏰ (22)
  • bug 🐛 (17)
  • docs 📜 (10)
  • perf 🚀 (9)
  • release đŸ›Šī¸ (6)
  • bin: edi đŸ’ģ (5)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The r3bl-open-core repository is a Rust-based TUI framework and suite of developer productivity applications built from the ground up to provide modern, async command-line and terminal user interface experiences. Created by Nazmul Idris after leaving Google in 2021, the project represents a fundamental rethinking of how terminal applications should be architected, moving away from traditional blocking operations like POSIX readline toward a purely async, immediate mode reactive UI where every state change triggers a fresh render without blocking the main thread.

The core architectural innovation distinguishes R3BL TUI from existing solutions like vim, neovim, and ratatui through its immediate mode reactive UI with clean separation between rendering and state mutation. The framework is designed to work seamlessly across Linux, macOS, and Windows while being optimized for SSH connections through diff-based painting and handling complex concurrent operations with low latency. The creator's initial exploration with Node.js and ink revealed fundamental limitations including module incompatibilities, limited keybinding control, high resource consumption, and screen flickering, which motivated building a purpose-built Rust solution.

The workspace contains multiple crate categories supporting different application patterns. Full TUI applications operate in async raw mode with full screen support for immersive experiences, while partial TUI implementations use async partial raw mode with async readline for choice-based user interactions and async REPL functionality. The framework also includes a terminal multiplexer component. A revolutionary "Applets" state management system allows processes to persist state across their lifecycle and share it with other instances or processes through underlying systems-level infrastructure mechanisms.

Built-from-scratch primitives form the foundation of the framework. The async readline implementation differs fundamentally from POSIX readline by being fully async, interruptable, and non-blocking. A Choose API enables single-shot user interactions that enter raw mode without taking over the screen or disrupting the terminal's back buffer. All components are end-to-end testable using InputDevice and OutputDevice types for stdin, stdout, and stderr, along with PTY infrastructure and VT-100 parser and generator infrastructure.

Advanced rendering and styling capabilities include CSS-like styling with JSX-inspired declarative layouts, gradient color support with automatic terminal capability detection, double-buffered compositing for efficient rendering, and comprehensive color support that adapts to terminal capabilities including handling macOS Terminal.app's lack of truecolor support. The rich component ecosystem provides a beautiful Markdown parser with syntax highlighting, rich text editor components, dialog box support, an animation framework in development, process orchestration via a script module, and async REPL infrastructure.

The framework draws inspiration from modern frontend and mobile development paradigms including React, SolidJS, Elm, iced-rs, Jetpack Compose, JSX, and CSS, reimagining these concepts for TUI development in Rust with everything built to be async for parallel and concurrent execution via Tokio. The project's dual mission combines building a comprehensive library enabling rich TUI development with creating applications that enhance developer productivity and workflows, positioning terminal applications as places of productivity rather than mere command-line interfaces.