Небольшая CLI-утилита, которая превращает любую программу со STDIN/STDOUT в WebSocket-сервер, как inetd для WebSocket.
vi/websocat
Консольный клиент и сервер WebSocket — netcat, curl и socat для подключений ws:// и wss://.
- Звёзды
- 8,732
- Форки
- 334
- Открытые issues
- 161
- Последний коммит
- 2 месяца назад
Что это?
websocat — консольная утилита для работы с WebSocket. Она подключается к URL WebSocket и передаёт ему данные из stdin и stdout, принимает WebSocket-подключения на порту и связывает WebSocket с другими транспортами, например TCP, UNIX-сокетами, UDP или внешними программами. Утилита пригодится для быстрой отладки WebSocket-эндпоинтов из командной строки.
Помимо простых подключений, websocat позволяет комбинировать преобразования в стиле socat: преобразовывать сообщения в строки и обратно, кодировать их в Base64, сжимать, отправлять с обрамлением JSON-RPC или прекращать передачу при обнаружении заданной последовательности байтов. Поддерживаются TLS, пользовательские заголовки, выбор Sec-WebSocket-Protocol, прокси SOCKS5, автоматическое переподключение, рассылка нескольким клиентам и метрики Prometheus. Готовые бинарные файлы доступны для Linux, Windows и macOS; пакеты — для FreeBSD и Homebrew.
Основная ветка v1 написана на Rust и собирается с помощью cargo. Более новая версия v4 alpha разрабатывается в отдельной ветке, но пока не считается стабильной.
Ключевые возможности
- 01Подключается к эндпоинтам ws:// и wss:// и передаёт stdin/stdout в виде сообщений WebSocket
- 02Принимает WebSocket-подключения из командной строки
- 03Связывает WebSocket с TCP, UNIX-сокетами, UDP и внешними программами
- 04Поддерживает построчный и бинарный режимы сообщений, а также преобразования Base64 и JSON-RPC
- 05Поддерживает TLS, пользовательские заголовки, прокси SOCKS5 и автоматическое переподключение
Сценарии использования
- Отладка WebSocket-эндпоинта из терминала без написания клиентского кода
- Тестирование WebSocket-сервера: отправка сообщений и чтение ответов
- Передача TCP-сервиса, например SSH, через WebSocket-подключение
- Работа со скриптами через WebSocket-эндпоинт Chromium DevTools
Быстрый старт
- 1
Установить с помощью Homebrew на macOS
brew install websocat - 2
Подключиться к публичному эхо-серверу и вводить сообщения (Ctrl+d для выхода)
websocat ws://ws.vi-server.org/mirror
Что важно знать
- Сборка из исходного кода с очень новой версией тулчейна Rust может завершиться с ошибкой, поскольку некоторые зависимости v1 устарели.
- На Android подключения wss:// могут завершаться ошибкой, если не указать пакет сертификатов вручную.
В подборках
Темы
Частые вопросы
- Что такое websocat?
- Консольный клиент и сервер WebSocket — netcat, curl и socat для подключений ws:// и wss://. websocat — консольная утилита для работы с WebSocket. Она подключается к URL WebSocket и передаёт ему данные из stdin и stdout, принимает WebSocket-подключения на порту и связывает WebSocket с другими транспортами, например TCP, UNIX-сокетами, UDP или внешними программами. Утилита пригодится для быстрой отладки WebSocket-эндпоинтов из командной строки.
- websocat можно использовать бесплатно? Какая у него лицензия?
- websocat распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- websocat всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в websocat — 13 авг. 2026 г..
- Для чего можно использовать websocat?
- Отладка WebSocket-эндпоинта из терминала без написания клиентского кода Тестирование WebSocket-сервера: отправка сообщений и чтение ответов Передача TCP-сервиса, например SSH, через WebSocket-подключение Работа со скриптами через WebSocket-эндпоинт Chromium DevTools
- Как установить websocat?
- Установить с помощью Homebrew на macOS: brew install websocat Подключиться к публичному эхо-серверу и вводить сообщения (Ctrl+d для выхода): websocat ws://ws.vi-server.org/mirror
- Где скачать websocat?
- Исходный код и инструкции по установке — на GitHub: https://github.com/vi/websocat
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Консольная утилита и библиотека для передачи данных на серверы и с серверов по URL с поддержкой HTTP, FTP, SFTP, SMTP и многих других протоколов.
Интерактивный прокси для перехвата HTTP-трафика с поддержкой TLS и интерфейсами для консоли, командной строки и браузера.
Минималистичная событийная библиотека WebSocket для Go с поддержкой сервера и клиента, permessage-deflate, TCP, KCP и Unix-сокетов.
Шпаргалки по командам Unix и языкам программирования — в терминале и браузере, через curl, CLI-клиент и плагины для редакторов.
Терминальный инструмент для диагностики сети, объединяющий traceroute и ping, чтобы помогать выявлять проблемы с подключением.