- 터미널 녹화 도구 asciinema CLI 3.0이 Rust로 전면 재작성되어, 파일 포맷 업그레이드 및 터미널 라이브 스트리밍 기능이 추가됨
- Rust 채택으로 정적 바이너리 제공과 빠른 시작 시간, AVT 통합으로 동시성·시스템 호출 처리가 쉬워지고 신규 기능 구현 기반 확보
- 새 asciicast v3 포맷은 이벤트 인터벌(델타) 기반 타이밍, term 하위 메타데이터 구조화, "x" 종료 이벤트, # 라인 주석을 도입해 편집성과 표현력을 높임
-
라이브 터미널 스트리밍은 로컬 내장 서버와 원격 릴레이(자체 호스팅/공식 서버) 두 모드로 제공되며, 네트워크 상황에 따라 적응형 버퍼링으로 부드러운 뷰잉 경험을 제공
- 기본 철학을 Local-first로 재정비하여 rec는 파일명을 필수로 받고 업로드를 분리(upload <파일>), 자체 서버 선택 프롬프트로 셀프 호스팅 친화성과 의도치 않은 데이터 유출 방지 강화
3.0 출시: Rust로 재작성된 asciinema CLI와 주요 개선점
- asciinema CLI 3.0이 공식적으로 출시
- 이번 버전에서는 전체 코드가 Rust로 재작성됨과 동시에 레코딩 파일 포맷이 업그레이드
-
터미널 세션 라이브 스트리밍 등 다양한 기능들이 추가/개선됨
Rust 재작성과 전반적 개선
- CLI를 Rust로 전면 재작성하여 개발자 경험과 유지보수성을 높였으며, 정적 바이너리 배포로 설치 경로 단순화, 시작 속도 향상, 기능 확장성 확보
- 시스템 호출과 동시성 처리가 Python 대비 용이하다는 저자의 경험을 바탕으로 선택했으며, asciinema virtual terminal(AVT) 를 CLI에 통합해 신규 기능 구현이 가능해졌음
- 결과적으로 성능·배포·아키텍처 측면에서 향후 기능 추가의 토대를 마련함
asciicast v3 파일 포맷
-
asciicast v3 파일 포맷으로 진화하며, 기존 v2에서 드러난 여러 단점을 보완함
- v2의 절대 타임스탬프를 간격(인터벌/델타) 기반 타이밍으로 교체하여 이벤트 삽입·삭제 시 후속 타임스탬프 일괄 조정 문제를 해소
- 헤더를 재구성하여 터미널 관련 메타데이터를 term 키 아래로 그룹화하고, 세션 종료 상태 저장을 위한 "x"(exit) 이벤트를 지원
- 파일 내 라인 주석(#) 을 허용해 가독성과 관리 용이성 향상
- 예시 스니펫 제공으로 구조와 이벤트 스트림 구성을 직관적으로 제시함
- 신규 포맷은 asciinema server, asciinema player 에서 이미 지원됨
라이브 터미널 스트리밍
-
로컬 모드: 내장 HTTP 서버로 동일 네트워크에서 시청 가능한 스트림 제공, 데이터가 시청자 브라우저로만 전달되는 프라이버시 우선 모드
- CLI에 최신 asciinema player가 번들되어 즉시 재생 가능하며, 방화벽 포트 개방이 필요할 수 있음
-
원격 모드: asciinema server(공식 또는 자가 호스팅)를 릴레이로 사용해 공유 가능한 URL로 스트림을 배포
- 두 모드를 동시에 사용할 수 있어 상황에 맞는 배포 구성이 가능
- 플레이어는 실시간 네트워크 지연 측정 기반의 적응형 버퍼링으로 낮은 지연과 버퍼 언더런 방지를 균형화
- 서버는 스트림 자동 녹화를 지원하며, 현재 asciinema.org 운영 서버는 녹화 비활성·동시 1개 스트림 제한 정책을 운용 중
- 셀프 호스팅 시 기본적으로 녹화 활성·동시 스트림 제한 없음
Local-first로의 회귀
- 과거 asciinema rec는 업로드 동작이 기본 경로에 포함되어 무의식적 공개·정보 누출 위험이 있었음
- 2.4에서 업로드 전 선택 프롬프트를 도입해 전환을 준비했으며, 3.0에서 파일명 필수·rec의 업로드 기능 제거·upload <파일> 명시적 명령으로 분리함
- 기본 철학을 로컬 우선으로 명확히 하여, 사용자가 의도를 갖고 공개/공유를 결정하도록 흐름을 재설계함
- 로컬 전용 사용이 완전 지원되며, 필요 시에만 명시적으로 퍼블리시함
셀프 호스팅 친화성 강화
-
upload/stream/auth를 처음 사용할 때 서버 URL 선택 프롬프트를 표시, 기본값을 asciinema.org로 제시하되 사용자 의도에 따른 인스턴스 선택을 저장함
- 기존에도 설정 파일/환경 변수로 지정 가능했으나, 대화형 환경(신규 VM·Dev 컨테이너 등) 에서 수월한 지정이 가능해짐
- 이는 셀프 호스팅 사용성을 높이는 동시에, 원치 않는 외부 업로드 방지라는 추가 안전장치 역할을 수행함
배포와 이용 안내
- 각 배포판 패키지 리포지터리 반영까지는 시간이 소요될 수 있음
- 그 사이 GNU/Linux·macOS용 사전 빌드 바이너리를 GitHub 릴리스에서 내려받아 사용하거나, 소스에서 빌드 가능함
- 릴리스 노트와 상세 변경 이력은 GitHub의 release notes 및 CHANGELOG 문서에서 확인 가능함