r3bl-org/r3bl-open-core
TUI framework and developer productivity apps in Rust 🦀
해결하는 문제
기존 터미널 사용자 인터페이스(TUI) 라이브러리는 종종 블로킹 작업에 의존하거나 화면 깜빡임이 발생하거나 터미널 동작에 대한 제어가 제한됩니다. r3bl-open-core는 메인 스레드를 차단하지 않고 Linux, macOS, Windows에서 원활하게 작동하는 현대적인 CLI 및 TUI 애플리케이션을 Rust로 구축하기 위한 고성능이고 완전히 비동기적인 프레임워크를 제공합니다.
작동 방식
이 프로젝트는 즉시 모드의 반응형 UI를 구현하며, 모든 상태 변경이 다시 렌더링을 트리거합니다. 상태 변경과 렌더링을 분리함으로써 렌더링 최적화를 달성합니다. 두 개의 버퍼를 사용하는 컴포지터를 활용하여 변경된 부분만을 그리므로 성능을 최적화하고 깜빡임을 줄입니다. 이 프레임워크는 다음과 같은 핵심 원시 기능으로 구성되어 있습니다:
- 비동기 Readline: 블로킹되지 않고 중단 가능한 줄 입력 구현.
- Applets: 프로세스의 수명 주기 동안 상태를 지속하고 공유할 수 있는 상태 관리 시스템.
- FlexBox 및 CSS 유사 스타일링: 현대 웹 개발(React, JSX, CSS)을 영감으로 한 선언형 레이아웃 엔진과 스타일링 시스템.
- TUI 모드: "풀 TUI"(로우 모드, 대체 화면), "부분 TUI"(인터랙티브 선택 및 비동기 REPL), 그리고 PTY를 통한 터미널 멀티플렉싱을 지원합니다.
대상 사용자
전통적인 블로킹 TUI 라이브러리의 제약 없이, 단순한 인터랙티브 프롬프트부터 전체 화면 생산성 도구에 이르기까지, 몰입감 있고 반응성이 뛰어나며 복잡한 터미널 애플리케이션을 구축하고 싶은 Rust 개발자들.
주요 특징
- 완전히 비동기: Tokio 기반으로 메인 이벤트 루프와 모든 작업이 블로킹되지 않도록 보장.
- 웹을 영감으로 한 사용성: 터미널에 FlexBox와 CSS 유사 선언형 레이아웃을 도입.
- 크로스 플랫폼: Windows, macOS, Linux를 네이티브로 지원하며, SSH 연결을 위한 최적화도 제공.
- 풍부한 컴포넌트 라이브러리: 구문 강조 기능이 있는 Markdown 파서, 리치 텍스트 에디터, 대화 상자 등을 포함.
- 통합 앱: 참조 구현으로
edi(Markdown 에디터)와giti(인터랙티브 Git 워크플로우)를 포함.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트