任意のSTDIN/STDOUTプログラムをWebSocketサーバーとして動かす、小さなCLIツール。WebSocket版inetdのように使えます。
vi/websocat
ws://、wss://接続向けの、netcat、curl、socatのように使えるコマンドラインWebSocketクライアント兼サーバー。
- スター
- 8,732
- フォーク
- 334
- 未解決の Issue
- 161
- 最終コミット
- 2 か月前
これは何?
websocatは、WebSocketを扱うためのコマンドラインツールです。WebSocket URLに接続してstdinとstdoutを接続先にパイプしたり、ポート上でWebSocket接続を受け付けたり、WebSocketをTCP、UNIXソケット、UDP、外部プログラムなどの別のトランスポートにブリッジしたりできます。シェルからWebSocketエンドポイントを手早くデバッグするのに便利です。
単純な接続に加えて、socatのように処理を組み合わせる機能も備えています。メッセージを行単位に変換したり、Base64エンコードや圧縮を行ったり、JSON-RPCのフレーミングを付けて送信したり、指定したバイト列で処理を停止したりできます。TLS、カスタムヘッダー、Sec-WebSocket-Protocolの選択、SOCKS5プロキシ、自動再接続、複数クライアントへのブロードキャスト、Prometheusメトリクスにも対応しています。Linux、Windows、macOS向けのビルド済みバイナリが提供されており、FreeBSDとHomebrew向けのパッケージもあります。
メインのv1系列はRustで書かれており、cargoでビルドします。新しいv4 alphaは別ブランチで開発中ですが、まだ安定版とは見なされていません。
主な機能
- 01ws://およびwss://のエンドポイントに接続し、stdin/stdoutをWebSocketメッセージにパイプする
- 02コマンドラインからWebSocket接続を受け付ける
- 03WebSocketをTCP、UNIXソケット、UDP、外部プログラムにブリッジする
- 04行単位・バイナリのメッセージモード、Base64変換、JSON-RPC変換に対応する
- 05TLS、カスタムヘッダー、SOCKS5プロキシ、自動再接続に対応する
ユースケース
- クライアントコードを書かずに、ターミナルからWebSocketエンドポイントをデバッグする
- メッセージを送信して応答を読み取り、WebSocketサーバーをテストする
- SSHなどのTCPサービスをWebSocket接続経由で公開する
- スクリプトからChromium DevToolsのWebSocketエンドポイントを操作する
クイックスタート
- 1
macOSにHomebrewでインストールする
brew install websocat - 2
公開エコーサーバーに接続し、メッセージを入力する(終了するにはCtrl+d)
websocat ws://ws.vi-server.org/mirror
使う前に知っておきたいこと
- 非常に新しいRustツールチェーンでソースからビルドすると、v1の依存関係の一部が古いため失敗することがあります。
- Androidでは、証明書バンドルを手動で指定しないとwss://接続に失敗することがあります。
収録されている特集
トピック
よくある質問
- websocat とは?
- ws://、wss://接続向けの、netcat、curl、socatのように使えるコマンドラインWebSocketクライアント兼サーバー。 websocatは、WebSocketを扱うためのコマンドラインツールです。WebSocket URLに接続してstdinとstdoutを接続先にパイプしたり、ポート上でWebSocket接続を受け付けたり、WebSocketをTCP、UNIXソケット、UDP、外部プログラムなどの別のトランスポートにブリッジしたりできます。シェルからWebSocketエンドポイントを手早くデバッグするのに便利です。
- websocat は無料で使えますか?ライセンスは?
- websocat は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- websocat は今もメンテナンスされていますか?
- 半年以内に更新あり。websocat の最終コミットは 2026年8月13日 です。
- websocat は何に使えますか?
- クライアントコードを書かずに、ターミナルからWebSocketエンドポイントをデバッグする メッセージを送信して応答を読み取り、WebSocketサーバーをテストする SSHなどのTCPサービスをWebSocket接続経由で公開する スクリプトからChromium DevToolsのWebSocketエンドポイントを操作する
- websocat のインストール方法は?
- macOSにHomebrewでインストールする: brew install websocat 公開エコーサーバーに接続し、メッセージを入力する(終了するにはCtrl+d): websocat ws://ws.vi-server.org/mirror
- websocat はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/vi/websocat
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
URLを使ってサーバーとのデータ送受信を行うコマンドラインツールとライブラリ。HTTP、FTP、SFTP、SMTPなど多くのプロトコルに対応。
HTTP/1、HTTP/2、WebSocketの通信を調査できる、コンソール・コマンドライン・Webインターフェースを備えたTLS対応の対話型HTTPプロキシ。
Go向けの軽量なイベント駆動型WebSocketサーバー/クライアントライブラリ。permessage-deflateに対応し、TCP、KCP、Unixソケットで利用できます。
Unixコマンドやプログラミング言語のチートシートを、curl、CLIクライアント、エディタプラグインから利用できます。
tracerouteとpingを組み合わせ、ネットワーク接続の問題を分析できるターミナル向け診断ツール。