Skip to content

Releases: r3bl-org/r3bl-open-core

v0.0.5-build-infra

17 Feb 20:02
d61d171

Choose a tag to compare

Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts - documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.

  • 📝 cargo-rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments.

v0.0.5 (2026-02-17)

Handle deleted files gracefully in cargo rustdoc-fmt.

Fixed:

  • Files reported by git diff that no longer exist on disk (e.g., deleted or renamed files) caused errors. Now filters them out before processing and reports skipped files to the user.

Coming Soon 🚀

  • cargo-monitor - Unified development workflow automation (Rust port of check.fish and rust-toolchain*.fish)

Full Changelog

v0.0.4-build-infra

17 Feb 00:41
dec01a9

Choose a tag to compare

Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts - documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.

  • 📝 cargo-rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments.

v0.0.4 (2026-02-16)

Multi-line reference-style link definition support for cargo rustdoc-fmt.

Fixed:

  • Multi-line reference link definitions (where [name]: is on one line and the URL on the next) were broken: the label line was extracted as a reference but the URL line was orphaned as content. Added look-ahead parsing in separate_references() to recognize multi-line refs as a unit and preserve their two-line format (which rustfmt creates to respect line length limits).

Added:

  • 4 unit tests for multi-line reference handling
  • Updated sample_rrt_mod.rs and sample_html_comments.rs real-world test fixtures for multi-line ref preservation

Coming Soon 🚀

  • cargo-monitor - Unified development workflow automation (Rust port of check.fish and rust-toolchain*.fish)

Full Changelog

r3bl-build-infra v0.0.2

27 Jan 19:44
12e0581

Choose a tag to compare

Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts—documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.

  • 📝 cargo rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments. Workspace-aware, git-integrated, CI-ready.

v0.0.2 (2026-01-27)

Bug fixes for cargo rustdoc-fmt to preserve ASCII diagrams and protected content.

Fixed:

  • Content protector placeholder corruption: Changed from ___PROTECTED_CONTENT___ to Unicode arrows (◄◄◄PROTECTED_CONTENT►) to prevent pulldown_cmark from interpreting triple underscores as bold+italic formatting
  • Link converter ASCII diagram corruption: Rewrote to use regex replacement instead of pulldown_cmark parsing, which was destroying ASCII diagrams, numbered lists, indentation, and other formatting

Added:

  • Real-world test case using the Resilient Reactor Thread module (ASCII diagrams that were getting clobbered + extensive intra-doc links)

Coming Soon 🚀

  • cargo-monitor - Unified development workflow automation (Rust port of check.fish and rust-toolchain*.fish):
    • Watch mode with continuous compilation, testing, and doc building on file changes
    • tmpfs target directory for ~2-3x faster builds in RAM
    • Automated nightly toolchain validation and corruption recovery
    • ICE (Internal Compiler Error) detection and auto-recovery
    • Two-stage doc builds (quick blocking + full background)
    • Cross-platform support (Linux/macOS)
    • See the cargo-monitor implementation plan for details

Full Changelog

r3bl_tui v0.7.8

23 Jan 22:08
93f4960

Choose a tag to compare

A fully async modern TUI framework for Rust (nothing blocks the main thread). Features include flexbox-like layouts, CSS-like styling, reactive state management, async readline (non-blocking alternative to POSIX readline), VT100 input/output parsers, and a double-buffered compositor optimized for SSH (paints only diffs), and much more. Works on Linux, macOS, and Windows. Add to your project with cargo add r3bl_tui.

v0.7.8 (2026-01-23)

Fixed:

  • VSCode terminal color rendering: Changed ANSI escape sequence format from colon-separated (ESC[38:2:r:g:bm) to semicolon-separated (ESC[38;2;r;g;bm) for universal terminal compatibility. The colon format (ITU-T T.416) is technically correct but not supported by VSCode's xterm.js terminal emulator and many other terminals. The semicolon format (xterm de-facto standard) works everywhere. Our VT100 parser still accepts both formats for maximum compatibility when parsing output from other applications.

  • Glyph font compatibility: Replaced exotic Unicode glyphs with more universally-supported characters that render correctly across more terminal fonts. Affected glyphs: check marks, fail indicator, pointer, game character, and terminal icon.

Full Changelog

r3bl_tui v0.7.7

23 Jan 19:58
9a21aae

Choose a tag to compare

A fully async modern TUI framework for Rust (nothing blocks the main thread). Features include flexbox-like layouts, CSS-like styling, reactive state management, async readline (non-blocking alternative to POSIX readline), VT100 input/output parsers, and a double-buffered compositor optimized for SSH (paints only diffs), and much more. Works on Linux, macOS, and Windows. Add to your project with cargo add r3bl_tui.

v0.7.7 (2026-01-23)

This release introduces major architectural additions including the DirectToAnsi backend for Linux-native terminal I/O, the Resilient Reactor Thread (RRT) pattern for blocking I/O handling, comprehensive VT100 parser upgrades enabling in-memory terminal emulation, and PTY-based integration testing infrastructure. It also includes a PTY multiplexer with terminal multiplexing functionality similar to tmux.

Major Infrastructure Additions:

  • DirectToAnsi Backend (Linux-Native): A custom terminal I/O implementation bypassing Crossterm on Linux for lower latency and reduced overhead. See the DirectToAnsiInputDevice docs for architecture details.

    • Direct ANSI escape sequence handling with full VT100 compliance
    • Input device using mio (epoll) for async I/O multiplexing
    • Output device with PixelCharRenderer and smart attribute diffing (~30% output reduction)
    • Zero-latency ESC key detection and full keyboard modifier support
    • Mouse event handling with bracketed paste support
    • SIGWINCH signal integration for terminal resize
    • Crossterm still used on macOS/Windows where platform APIs differ
  • Resilient Reactor Thread (RRT) Pattern: A reusable pattern for bridging blocking I/O with async Rust—spawn a dedicated thread, broadcast events to async consumers, and handle graceful shutdown automatically. The module documentation provides a comprehensive architecture overview.

    • ThreadSafeGlobalState<W, E> - Thread-safe singleton pattern for RRT instances
    • ThreadLiveness - Running state + generation tracking for safe thread reuse
    • SubscriberGuard<W, E> - Manages subscriber lifecycle with waker access
    • Broadcasts events to async consumers via broadcast channels
    • Handles graceful shutdown when all consumers disconnect
  • VT100/ANSI Output Parser & In-Memory Terminal Emulation: Complete VT100 ANSI implementation enabling snapshot testing. See the ansi module for the parser and OffscreenBuffer for the in-memory terminal.

    • VTE parser integration with custom Performer implementation
    • Full support for cursor movement, erase operations, scroll regions, SGR (colors/styles)
    • Enables snapshot testing: compare expected vs actual terminal state without a real terminal
  • PTY Testing Infrastructure: Real-world testing in pseudo-terminals instead of mocks. See the generate_pty_test! macro documentation for usage and the Controller/Controlled pattern.

    • Controller/Controlled pattern for test isolation
    • generate_pty_test! macro for single-feature tests
    • spawn_controlled_in_pty for multi-backend comparison tests
    • Backend compatibility tests verifying DirectToAnsi vs Crossterm produce identical results
    • Test coverage: bracketed paste, keyboard modifiers, mouse events, SIGWINCH, UTF-8
  • Enhanced readline_async API: Expanded keyboard support makes building CLI apps easier—Tab completion, arrow key navigation, and function keys now work out of the box. See the readline_async module for the full API.

    • Tab and BackTab (Shift+Tab) key support
    • Navigation keys support (arrow keys, Home, End, PageUp, PageDown)
    • FnKey support (F1-F12)
    • Type-safe editor state methods via ReadlineAsyncContext
    • Extended ReadlineEvent enum with new variants
  • PTY Multiplexer: Terminal multiplexing functionality similar to tmux. See the pty_mux module for the complete API.

    • Enhanced support for truecolor and TUI apps that frequently re-render their UI
    • pty_mux_example.rs demonstrating multiplexer capabilities with multiple TUI processes
    • Support for spawning and switching between multiple TUI processes using Ctrl+1 through Ctrl+9
    • Live status bar showing process states (🟢 running, 🔴 stopped) and keyboard shortcuts
    • OSC sequence integration for dynamic terminal title updates
    • Fake resize technique for proper TUI app repainting when switching processes
    • Support for configurable TUI processes: less, htop, claude, gitui
    • pty_simple_example.rs for basic PTY functionality demonstration
    • pty_rw_echo_example.rs for PTY echo testing and validation
    • ansi/terminal_output.rs module with high-level terminal operations
    • PTY integration tests that spawn real TUI apps (eg: htop) to validate VT100 parsing

Internal Improvements:

  • Changed:
    • Refactored mio_poller module for improved clarity and thread reuse semantics
    • Reduced DirectToAnsi input device complexity
    • Thread liveness tracking integrated with mio_poller for restart capability
    • Enhanced PTY read-write session with comprehensive cursor mode support
    • Improved PTY input/output event handling with extensive terminal input event mapping
    • Enhanced color conversion in crossterm_color_converter.rs
    • Improved styling in readline components (apply_style_macro.rs)
    • Enhanced spinner rendering with better visual feedback (spinner_render.rs)
    • Improved crossterm backend rendering operations (render_op_impl.rs)
    • Integrated with r3bl_tui's TuiColor system for consistent styling
    • Cleaned up read-only session to remove read-write specific code

Development Tooling

This section documents the build infrastructure we use internally to develop r3bl_tui. While these fish scripts are specific to this repo, we're converting them into Rust binaries over time and shipping them as r3bl-build-infra—starting with cargo rustdoc-fmt, with more tools coming soon.

Rust Development Power Tools (2026-01-23)

This release focuses on developer productivity: faster builds with the nightly parallel compiler, smarter toolchain management, and a streamlined bootstrap experience. We've also removed legacy dependencies in favor of Claude Code's built-in capabilities.

Also see r3bl-build-infra—it provides cargo rustdoc-fmt for formatting rustdoc comments, which is used extensively by Claude Code skills in this repo to maintain consistent documentation style.

Changed:

  • Build system migration: Migrated from nushell to fish shell for all build scripts - run.fish replaces run.nu throughout the project for improved maintainability and readability
  • Copyright headers: Shrunk copyright headers in all files for better readability
  • Claude Code configuration: Updated Claude Code configuration files and VS Code settings for improved development experience
  • Updated project bootstrap experience: fzf and fish are now required for the bootstrap.sh script to work correctly, ensuring a smoother setup process
  • Documentation: Updated README.md with comprehensive Claude Code integration section documenting .claude/ directory structure, available skills, and slash commands
  • Documentation: Fixed script name inconsistencies (rust-toolchain-validate.fish not rust-toolchain-install-validate.fish)
  • Documentation: Added tmux-r3bl-dev.fish development dashboard documentation
  • Documentation: Clarified VSCode extensions installation workflow

Added:

  • check.fish development workflow script: Comprehensive build automation with significant performance optimizations:

    • Nightly parallel frontend compiler (-Z threads=N) for ~30-40% faster builds
    • Shared tmpfs target ($CARGO_TARGET_DIR=/tmp/roc/target/check) — all tools (Claude, VSCode, check.fish) share one RAM-based cache, so builds are always warm
    • Watch modes (--watch, --watch-doc, --watch-tests) keep the cache perpetually warm—sophisticated debounce waits for a 2-second quiet period, so rapid file changes (from typing, Claude Code, linters, etc.) don't trigger frenzied rebuilds
    • Two-stage doc builds: Quick blocking (~3-5s) + full background (~90s) with staging directories that prevent the docs folder from going empty during slow rustdoc rebuilds
    • ICE detection and auto-recovery for Internal Compiler Errors
    • Single-instance enforcement kills orphaned watchers automatically
  • Smart rust-toolchain management (rust-toolchain-update.fish, rust-toolchain-sync-to-toml.fish): Nightly Rust is powerful but unstable—these scripts automatically find stable nightlies, validate them against your code, and remove the hassle of toolchain management entirely.

    • Automated stable nightly discovery: Tests nightlies from ~1 month ago for ICE errors before committing—you get nightly features without nightly instability
    • Aggressive cleanup: Removes old nightlies while preserving known-good toolchains
    • Corruption recovery: Detects "Missing manifest" errors and force-removes broken toolchains
    • Desktop notifications for success/failure via notify-send
    • Comprehensive logging to ~/Downloads/rust-toolchain-*.log
  • Coming soon: [`c...

Read more

r3bl-cmdr v0.0.26

23 Jan 22:07
93f4960

Choose a tag to compare

r3bl-cmdr provides two fully async TUI applications (built on r3bl_tui) for developers. Both are currently available as early access preview 🐣. Install with cargo install r3bl-cmdr.

  • 😺 giti - An interactive git CLI app designed to give you more confidence and a better experience when working with git. Fully async—never blocks the main thread. Features visual branch selection and streamlined commit workflows.

  • 🦜 edi - A TUI Markdown editor that lets you edit Markdown files in your terminal in style. Fully async—never blocks the main thread. Features gradient colors, smart terminal capability detection (gracefully degrades), smart list formatting, full emoji support, language-specific syntax highlighting inside fenced code blocks, SSH optimized (only repaints what's changed), and a zero-copy gap buffer for responsive editing even in large files.

v0.0.26 (2026-01-23)

Fixed:

  • VSCode terminal color rendering: Colors now display correctly in VSCode's integrated terminal (via updated r3bl_tui v0.7.8 dependency). Previously, colors appeared washed out or missing because VSCode's xterm.js terminal emulator doesn't support the colon-separated ANSI escape sequence format.

Full Changelog

r3bl-cmdr v0.0.25

23 Jan 20:07
e65097b

Choose a tag to compare

r3bl-cmdr provides two fully async TUI applications (built on r3bl_tui) for developers. Both are currently available as early access preview 🐣. Install with cargo install r3bl-cmdr.

  • 😺 giti - An interactive git CLI app designed to give you more confidence and a better experience when working with git. Fully async—never blocks the main thread. Features visual branch selection and streamlined commit workflows.

  • 🦜 edi - A TUI Markdown editor that lets you edit Markdown files in your terminal in style. Fully async—never blocks the main thread. Features gradient colors, smart terminal capability detection (gracefully degrades), smart list formatting, full emoji support, language-specific syntax highlighting inside fenced code blocks, SSH optimized (only repaints what's changed), and a zero-copy gap buffer for responsive editing even in large files.

v0.0.25 (2026-01-23)

Streamlined the crate by removing the experimental ch binary to focus on the core tools: giti (interactive git) and edi (markdown editor).

Removed:

  • ch binary and all associated code (Claude Code prompt history recall tool)
  • ch module from library exports

Changed:

  • Updated documentation to reflect only giti and edi as the main binaries

Full Changelog

r3bl-build-infra v0.0.1

23 Jan 20:17
685d5bd

Choose a tag to compare

Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts—documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.

  • 📝 cargo rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments. Workspace-aware, git-integrated, CI-ready.

v0.0.1 (2026-01-23)

Initial release with cargo rustdoc-fmt—a cargo subcommand that formats markdown tables and converts inline links to reference-style in rustdoc comments.

Added:

  • cargo-rustdoc-fmt binary - Cargo subcommand for formatting rustdoc comments
    • Markdown table alignment in /// and //! doc comments
    • Inline-to-reference link conversion for cleaner documentation
    • Workspace-aware processing (specific files, directories, or entire workspace)
    • Git integration (auto-detect changed files, staged/unstaged, from latest commit)
    • Check mode for CI verification (--check flag)
    • Selective formatting (tables only, links only, or both)
  • Modular library API for programmatic use

Coming Soon 🚀

  • cargo-monitor - Unified development workflow automation (Rust port of check.fish and rust-toolchain*.fish):
    • Watch mode with continuous compilation, testing, and doc building on file changes
    • tmpfs target directory for ~2-3x faster builds in RAM
    • Automated nightly toolchain validation and corruption recovery
    • ICE (Internal Compiler Error) detection and auto-recovery
    • Two-stage doc builds (quick blocking + full background)
    • Cross-platform support (Linux/macOS)
    • See the cargo-monitor implementation plan for details

Full Changelog

r3bl_tui v0.7.6 (2025-08-16)

16 Aug 19:47
0586dc5

Choose a tag to compare

Refactor and reorganize the pty module to improve ergonomics and usability.

  • Changed:
    • Refactor the pty module to be more ergonomic.
    • Move the osc_seq.rs into a top level osc module.

More info: https://github.com/r3bl-org/r3bl-open-core/blob/main/CHANGELOG.md#v076-2025-08-16

r3bl_tui v0.7.5 (2025-08-15)

16 Aug 01:00
60cf50c

Choose a tag to compare

Fixed Windows compatibility issues with PTY exit status handling.

  • Fixed:
    • Windows compatibility for PTY exit status handling by properly using Windows-specific exit code encoding instead of Unix signal-based encoding

More info: https://github.com/r3bl-org/r3bl-open-core/blob/main/CHANGELOG.md#v075-2025-08-15