Repolode
joewalnes

joewalnes/websocketd

STDIN/STDOUT을 사용하는 프로그램을 WebSocket 서버로 감싸는, WebSocket용 inetd 같은 소형 CLI 도구입니다.

스타
17,459
포크
1,009
열린 이슈
1
마지막 커밋
2개월 전

어떤 프로젝트인가요?

websocketd를 사용하면 네트워킹 코드를 작성하지 않고도 기존 명령줄 프로그램을 WebSocket으로 노출할 수 있습니다. 클라이언트가 연결되면 프로그램을 실행하고, 들어오는 각 메시지 뒤에 줄바꿈을 붙여 프로그램의 STDIN으로 전달합니다. 프로그램이 STDOUT에 출력하는 각 줄은 WebSocket 메시지로 클라이언트에 보냅니다. 연결이 끊기면 프로세스를 종료합니다.

인터페이스가 표준 스트림뿐이므로 같은 스크립트를 터미널이나 셸 파이프라인에서 실행하거나 WebSocket 엔드포인트로 제공해도 수정할 필요가 없습니다. 이 프로젝트는 Linux, macOS, Windows용 단일 실행 파일로 배포됩니다. WebSocket 서버 기능 외에도 정적 파일 서버와 CGI 서버를 포함하고, 요청 정보를 담은 CGI 환경 변수를 제공하며, 브라우저에서 프레임을 테스트할 수 있는 개발자 콘솔을 내장합니다.

Unix 도메인 소켓에서 수신 대기할 수 있고, STDERR을 JSON 태그와 함께 선택적으로 전달할 수 있습니다. 클라이언트 연결이 끊기면 프로세스 그룹 전체를 종료합니다.

핵심 기능

  • 01STDIN을 읽고 STDOUT에 쓰는 프로그램을 WebSocket 엔드포인트로 감쌉니다.
  • 02외부 의존성 없이 Linux, macOS, Windows용 단일 실행 파일로 제공됩니다.
  • 03CGI 환경 변수를 통해 HTTP 요청 정보를 스크립트에 전달합니다.
  • 04정적 파일 서버와 전통적인 CGI 서버를 포함합니다.
  • 05TCP 또는 Unix 도메인 소켓에서 수신 대기할 수 있으며, STDERR을 선택적으로 전달합니다.
  • 06프레임을 전송하고 확인할 수 있는 개발자 콘솔을 내장합니다.

활용 사례

  • 기존 셸 스크립트나 CLI 도구용 브라우저 프런트엔드를 빠르게 프로토타이핑할 때.
  • 로그나 vmstat 통계 같은 시스템 출력을 웹 대시보드로 실시간 스트리밍할 때.
  • 명령줄 인터프리터를 감싸는 브라우저 기반 REPL을 빠르게 만들 때.
  • JavaScript 클라이언트를 작성하기 전에 스크립트의 WebSocket 메시지 처리를 테스트할 때.

빠른 시작

  1. 1

    Homebrew를 사용해 macOS에 설치하기

    brew install websocketd
  2. 2

    또는 설치 페이지에서 사용 중인 OS용 단일 실행 파일 다운로드하기

  3. 3

    count.sh와 같은 스크립트를 저장하고 포트 8080에서 WebSocket 서버로 실행하기

    websocketd --port=8080 ./count.sh

사용 전 알아둘 점

  • Homebrew를 통한 설치가 한 줄로 끝나는 것은 macOS뿐입니다. 다른 시스템에서는 수동으로 다운로드해야 합니다.

포함된 컬렉션

토픽

자주 묻는 질문

websocketd은(는) 무엇인가요?
STDIN/STDOUT을 사용하는 프로그램을 WebSocket 서버로 감싸는, WebSocket용 inetd 같은 소형 CLI 도구입니다. websocketd를 사용하면 네트워킹 코드를 작성하지 않고도 기존 명령줄 프로그램을 WebSocket으로 노출할 수 있습니다. 클라이언트가 연결되면 프로그램을 실행하고, 들어오는 각 메시지 뒤에 줄바꿈을 붙여 프로그램의 STDIN으로 전달합니다. 프로그램이 STDOUT에 출력하는 각 줄은 WebSocket 메시지로 클라이언트에 보냅니다. 연결이 끊기면 프로세스를 종료합니다.
websocketd은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
websocketd은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
websocketd은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. websocketd의 마지막 커밋은 2026년 9월 7일입니다.
websocketd은(는) 어디에 사용할 수 있나요?
기존 셸 스크립트나 CLI 도구용 브라우저 프런트엔드를 빠르게 프로토타이핑할 때. 로그나 vmstat 통계 같은 시스템 출력을 웹 대시보드로 실시간 스트리밍할 때. 명령줄 인터프리터를 감싸는 브라우저 기반 REPL을 빠르게 만들 때. JavaScript 클라이언트를 작성하기 전에 스크립트의 WebSocket 메시지 처리를 테스트할 때.
websocketd는 어떻게 설치하나요?
Homebrew를 사용해 macOS에 설치하기: brew install websocketd 또는 설치 페이지에서 사용 중인 OS용 단일 실행 파일 다운로드하기 count.sh와 같은 스크립트를 저장하고 포트 8080에서 WebSocket 서버로 실행하기: websocketd --port=8080 ./count.sh
websocketd은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/joewalnes/websocketd

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트