Об этом проекте

websocketd предоставляет простой способ открыть существующие программы командной строки через WebSockets без необходимости использовать сетевые библиотеки в самой программе. После запуска на выбранном порту он принимает WebSocket-соединения и запускает настроенный исполняемый файл для каждого соединения. Сообщения из браузера записываются в STDIN процесса с завершающим переводом строки, а вывод STDOUT, завершающийся переводом строки, возвращается клиенту в виде сообщений WebSocket. Когда одна из сторон отключается, связанный процесс и его группа процессов завершаются. Серверная программа может быть написана на любом языке, поддерживающем стандартный ввод и вывод, включая shell-скрипты, Python, Ruby, Perl, C, Go, PHP, Java, PowerShell, Lua и R. Информация о запросе, такая как удалённый хост, путь, параметры запроса и cookies, передаётся скриптам через переменные окружения CGI. Дополнительные возможности включают сервер статических файлов, классическую поддержку CGI, прослушивание Unix-доменного сокета с настраиваемыми правами доступа, опциональную пересылку STDERR в виде помеченного JSON и встроенную консоль разработчика WebSocket для подключения, отправки кадров и проверки ответов. Инструмент распространяется как единый автономный исполняемый файл для Linux, macOS и Windows, на macOS доступна установка через Homebrew. Репозиторий также содержит ссылки на примеры и демонстрационные проекты, связанные со статистикой системы в реальном времени, браузерными REPL, доступом к базам данных, списками файлов и вводом с геймпада.