r3bl-open-core
by
r3bl-org

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

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on March 23rd, 2024
Created on February 23rd, 2022
Open Issues & Pull Requests: 65 (+0)
Number of forks: 32
Total Stargazers: 475 (+0)
Total Subscribers: 3 (+0)

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.

Repository Insights (GitGenius)

Median issue/PR response: 465.8 days
Mean response time: 441.8 days
90th percentile: 1014.9 days
Tracked items: 200

Most active contributors

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.

According to GitGenius activity tracking, the repository shows median issue and PR response latency of 11178.1 hours with a mean of 10603.4 hours across 200 tracked items. The most active issue labels are bin: giti (18 occurrences), backlog (18 occurrences), and crate: tui (17 occurrences). Primary contributor nazmulidris has 245 tracked events, with prof79 contributing 11 events and BrunoGoirand contributing 10 events. The repository shares overlapping contributors with anthropics/claude-code, microsoft/vscode, and rust-lang/rust, indicating cross-project collaboration within the developer tools ecosystem.

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.

r3bl-open-core
by
r3bl-orgr3bl-org/r3bl-open-core

Repository Details

Fetching additional details & charts...