Shitty - 이상한 이름이지만 진지한 터미널 에뮬레이터

4 days ago 13

C++23으로 작성. 낮은 지연 시간, 빠른 시작, 예측 가능한 자원 사용을 목표로 만든 터미널 에뮬레이터 터미널 상태를 CPU에 유지하고 셀을 네이티브 컴퓨트 백엔드(Linux는 Vulkan, macOS는 Metal)로 렌더링 Apple 실리콘 MacBook에서 100MB를 GUI로 출력하는 벤치마크(모든 터미널을 동일 조건으로 정렬)에서 가장 빠른 처리량 기록 출력 가능한 ASCII 스크롤 경로에서 wall time 0.81s / 처리량 약 118 MiB/s로, alacritty(0.96s), kitty(1.28s), ghostty(1.49s)보다 앞섬 랜덤 바이트(파서 최악 상황, 전체가 잘못된 UTF-8)에서도 1.88s / 약 51 MiB/s로 alacritty(3.07s), ghostty(4.63s)보다 빠름 5,000개 이상의 테스트를 kitty, esctest, xterm vttests, vttest, tack, libvterm, libtsm, alacritty, ghostty, contour, konsole, mosh 등 여러 스위트에서 수집해 실제 PTY를 통한 블랙박스 방식으로 검증 프레임 리사이즈를 경계 변경과 같은 트랜잭션 내에서 렌더링하는 깜빡임 없는(flicker-free) 처리와, 손상 기반(damage-driven) 갱신 지원 파서 상태 머신이 완전(total)하고 커밋된 코퍼스로 퍼징되어, cat /dev/urandom이 크래시가 아닌 벤치마크로 취급될 정도의 견고성 확보 셀을 코드포인트가 아닌 그래핌 클러스터로 다뤄 이모지 시퀀스, 변형 선택자, 결합 문자, 넓은 CJK 문자를 올바르게 처리 윈도잉 툴킷 없이 폰트를 내장한 단일 소형 바이너리로, 폰트가 전혀 설치되지 않은 머신에서도 실행됨 기본적으로 애플리케이션이 명시적 허용 없이는 선택 영역을 읽거나 호스트 창을 제어할 수 없는 기본 잠금(locked down) 정책 적용 제공 기능들 VT52부터 VT5xx까지의 제어 시퀀스와 널리 쓰이는 xterm 확장 지원 주 화면·대체 화면, 주 화면 스크롤백, 여백(margins), 탭, 사각형 연산(rectangular operations), 보호 셀(protected cells), 동기화 출력(synchronized output) 지원 터미널 너비가 바뀔 때 주 화면 스크롤백을 다시 흐르게 하는 reflow 처리 유니코드 그래핌 클러스터, 결합 문자, 이모지 시퀀스, 두 배 너비 ...

Read Entire Article