r3bl-org/r3bl-open-core

Fully async Rust TUI engine 🦀. For powering AI/LLM coding agents, Cloud/SSH workflows & interactive CLIs: non-blocking readline, inline dialogs, React/Elm-style full-screen TUI, Markdown editor, PTY multiplexing & rust-analyzer MCP server.

r3bl-open-core (ROC)

정의 – Rust 기반 비동기 터미널 사용자 인터페이스(TUI) 프레임워크로, 최신 반응형 UI 패턴(React/Elm 참조)을 커맨드 라인에 제공합니다. 5개의 크레이트 모노레포로 제공되며, 핵심은 r3bl_tui이고, 바로 사용할 수 있는 생산성 앱과 빌드 도구를 포함합니다.

AI/LLM 워크플로우에 중요한 이유 – ROC는 AI 코딩 에이전트와 실행 하네스를 위한 빠르고 인터랙티브한 프론트엔드를 호스팅하도록 명시적으로 설계되었습니다. 일반적인 Node/ink 기반 터미널과 달리 순수 Rust로 실행되며, 제로 레이턴시 PTY 처리, 논블로킹 입력, 결정적 프로세스 라이프사이클을 제공합니다. 이는 장기 실행 샌드박스 도구(컨테이너, 마이크로 VM 등)를 오케스트레이션할 때 중요합니다.

주요 기능

  • 비동기, 논블로킹 I/O – readline_async를 사용하면 사용자가 입력하는 동안 REPL이 백그라운드 작업을 계속 실행할 수 있습니다.
  • 인라인 대화상자 – choose는 화면을 차지하지 않고 인라인으로 렌더링되는 일회성 다중 선택 메뉴를 제공합니다.
  • 전체 화면 앱 – 선언적 CSS 스타일링, 플렉스박스 레이아웃, 내장 Markdown 편집기를 갖춘 반응형, 패닉 세이프(raw-mode) UI.
  • 터미널 멀티플렉싱 및 PTY – 인메모리 가상 터미널, 가상 탭, 2D 수평 패닝, 서브프로세스 출력을 보이는 뷰포트에서 분리하는 PTY-mux.
  • 유니코드 인식 렌더링 – GCString은 그래핌 클러스터, 복잡한 이모지, 와이드 문자를 올바르게 처리하여 슬라이스 패닉과 시각적 왜곡을 방지합니다.
  • 성능 우선 설계 – Newtype 기반 좌표 안전성, SIMD 기반 Flat2DArray 버퍼, 이중 버퍼링된 디프 렌더링, 그리고 최소 레이턴시를 위해 crossterm을 우회하는 Linux 전용 커스텀 direct_to_ansi 드라이버.
  • 크로스 플랫폼 – Linux(네이티브 드라이버), macOS, Windows, BSD에서 crossterm 폴백으로 작동.
  • 테스트 및 벤치마킹 – 헤드리스 PTY 테스트 매크로, 시각적 스냅샷 테스트, 내장 플레임그래프 프로파일링.

주요 사용 사례

  1. AI/LLM 코딩 에이전트 – 신뢰할 수 있는 PTY 오케스트레이션과 빠른 UI 피드백이 필요한 코드 생성 봇을 위한 터미널 프론트엔드 구축.
  2. DevOps 및 클라우드 도구 – 가상 탭과 높은 지연 시간 허용 렌더링을 갖춘 풍부하고 반응성 있는 SSH 친화적인 작업 공간.
  3. 인터랙티브 Markdown – 구문 강조 및 인라인 코드 실행으로 라이브 편집.
  4. 일반 개발자 생산성 – giti, edi, env-source와 같은 앱은 재사용 가능한 터미널 구성 요소를 구성하는 방법을 보여줍니다.

생태계

크레이트 역할
r3bl_tui 핵심 비동기 TUI 엔진, PTY 프리미티브
r3bl-cmdr 바로 사용 가능한 생산성 앱 (git UI, 편집기, env 로더)
r3bl-build-infra 빌드 타임 도구 (cargo-rustdoc-fmt, spawny)
r3bl-rust-analyzer-mcp-server IDE/에이전트 통합을 위한 고성능 rust-analyzer 서버
r3bl_analytics_schema 개인정보 보호 우선 분석 및 업그레이드 스키마

성숙도 – crates.io에서 270만 이상의 다운로드를 기록했으며, 저장소에 자동화된 크로스 플랫폼 테스트와 벤치마킹이 내장되어 있습니다. 이 프로젝트는 외부 종속성을 tokio, mio, mimalloc과 같은 잘 유지 관리되는 기반으로 제한하여 공급망 무결성을 강조합니다.

시작하기 – Cargo를 통해 Rust 프로젝트에 필요한 크레이트를 추가한 다음, 제공된 프리미티브(readline_async, choose, 전체 화면 위젯)를 사용하여 앱을 구성합니다. README에는 PTY 멀티플렉싱과 수평 패닝을 시연하는 예제 바이너리(예: pty_mux_example)가 포함되어 있습니다.


모든 세부 사항은 저장소의 README에서 직접 가져왔으며, 외부 정보는 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트