Terminalwire는 웹 프레임워크에서 명령줄 인터페이스(CLI)를 사용자 워크스테이션의 씬 클라이언트로 스트리밍하는 혁신적인 솔루션입니다. 웹 브라우저의 쿠키, 동일 도메인 정책 등 친숙한 개념을 차용하여 Rails와 같은 웹 프레임워크 사용자에게 익숙한 환경을 제공합니다.
Terminalwire 아키텍처
Terminalwire는 크게 서버와 클라이언트 부분으로 나뉩니다.
1. Terminalwire 서버
- Terminalwire Server: 핵심 프로토콜, Thor 래퍼 등 대부분의 서버 기능이 구현되어 있습니다. Rack 호환 웹 서버에서 다양한 Ruby 서버 및 프레임워크와 연동되도록 설계되었습니다.
- Terminalwire Rails: Rails 통합을 위한 구성 요소로,
rails g terminalwire:install MyApp
과 같은 명령을 통해 필요한 파일을./app/terminal/*.rb
디렉터리에 자동으로 생성하는 제너레이터를 제공합니다.
2. Terminalwire 씬 클라이언트
- Terminalwire Client: 서버로부터 명령을 수신하고 이를 표시하는 UI를 포함한 클라이언트 프로토콜이 구현되어 있습니다.
- Terminalwire executable: 마찬가지로 서버로부터 명령을 수신하고 이를 표시하는 UI를 포함하며, 실행 가능한 형태로 제공됩니다.
Terminalwire를 활용하면 사용자는 선호하는 언어와 웹 프레임워크로 CLI를 구축하고, 이를 서버에 배포한 후 사용자 데스크톱의 씬 클라이언트로 스트리밍할 수 있습니다. Terminalwire는 바이너리 관리, 설치 및 업데이트를 자동화하여 개발자가 우수한 CLI 경험을 구축하는 데 집중할 수 있도록 돕습니다.