Что это такое?
Реализация протокола WebSocket на Go — быстрая, хорошо протестированная и широко используемая Go-библиотека для связи клиент–сервер по WebSocket.
Это библиотека, которую я импортирую в свой код, или отдельная программа, которую запускают сама по себе?
Это библиотека, а не отдельное приложение: вы импортируете github.com/gorilla/websocket в свою программу на Go и пишете вокруг неё логику клиента или сервера. Она входит в набор Gorilla web toolkit.
Как подключить её к проекту на Go?
Выполните команду go get github.com/gorilla/websocket, затем импортируйте пакет в своём коде. Это и есть единственный шаг установки, указанный в README.
Нужно ли что-то ещё, кроме Go?
Только сам инструментарий Go. Это самодостаточный пакет без внешних зависимостей, никакие аккаунты или API-ключи не нужны.
Насколько полная у него поддержка протокола WebSocket?
Здесь есть полная и протестированная реализация протокола, и пакет проходит серверные тесты Autobahn Test Suite; тестовое приложение лежит в подкаталоге examples/autobahn.
API достаточно стабилен, чтобы строить на нём продукт?
Да — в README прямо сказано, что API пакета стабилен, так что написанный на нём код не должен ломаться между релизами.
Он покрывает и клиентскую, и серверную сторону WebSocket-соединения?
И то и другое. В пакет входят реализации клиента и сервера, а примеры в README включают пример чата, пример command и объединённый пример клиента и сервера.
Где посмотреть работающие примеры кода?
В README есть ссылки на пример чата, пример command, пример клиента и сервера, пример отслеживания файлов, а также приложение для тестирования протокола Autobahn в examples/autobahn — этого достаточно, чтобы за пару минут скопировать работающие клиент и сервер.
Почему выбрать её, а не другие варианты для WebSocket на Go?
Она позиционируется как быстрая, хорошо протестированная и широко используемая, предлагает полную реализацию протокола WebSocket со стабильным API и проходит тесты на соответствие Autobahn — безопасный выбор по умолчанию для продакшена.
Проект ещё живой?
Да: репозиторий не заархивирован, существует с 2013 года и собрал примерно 24.9k звёзд, а в README реализация описана как полная, протестированная и со стабильным API.
What are similar projects?
mux, socket.io, ws, chat, centrifugo, nsq, websocketd, tornado
Which topics is it in?
communication, websockets, realtime, protocol, messaging, websocket, real-time, golang, bsd, backend, networking, go