awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Go WebSocket Server Libraries

Ranking updated Jun 30, 2026

For a WebSocket library for real-time servers in Go, the first results are gorilla/websocket (gorilla/websocket is the standard Go library for WebSocket communication, providing full RFC 6455 support, concurrent-safe message handling, ping/pong keepalives, and easy HTTP integration—exactly what you need for real-time server apps), olahol/melody (Melody is a Go WebSocket framework that handles protocol negotiation, session management, and broadcasting, directly matching the need for a library to build real-time server applications with WebSocket support) and gobwas/ws (gobwas/ws is a high-performance, low-level Go WebSocket library that fully implements RFC 6455 and provides an HTTP upgrader and compression, making it a solid choice for building real-time server applications, though it lacks built-in broadcast or pub/sub features). coder/websocket and tootallnate/java-websocket round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

High-performance Go libraries for building scalable real-time communication servers using the WebSocket protocol.

Go WebSocket Server Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • gorilla/websocketgorilla avatar

    gorilla/websocket

    24,523View on GitHub↗

    This project provides a comprehensive implementation of the WebSocket protocol, enabling persistent, bidirectional communication between clients and servers. It handles the low-level complexities of the protocol, including the initial HTTP upgrade handshake and the encapsulation of data into discrete binary frames. By managing these connections, it allows applications to exchange data instantly without the overhead associated with repeated standard request cycles. The library distinguishes itself through its focus on high-frequency message exchange and concurrent connection management. It uti

    gorilla/websocket is the standard Go library for WebSocket communication, providing full RFC 6455 support, concurrent-safe message handling, ping/pong keepalives, and easy HTTP integration—exactly what you need for real-time server apps.

    GoWebSocket ImplementationsWebSocketsProtocol Upgrades
    View on GitHub↗24,523
  • olahol/melodyolahol avatar

    olahol/melody

    4,066View on GitHub↗

    Melody is a WebSocket server framework designed to upgrade HTTP connections into bidirectional streams. It functions as a session manager and binary streaming library that facilitates real-time data exchange between a server and multiple remote clients. The project features a broadcast engine that optimizes multi-client transmissions through wire-representation caching. It includes a dedicated session management system for attaching custom state to persistent network connections and an upgrade handler that validates handshake headers. The framework covers broad capability areas including eve

    Melody is a Go WebSocket framework that handles protocol negotiation, session management, and broadcasting, directly matching the need for a library to build real-time server applications with WebSocket support.

    GoHandshake Upgrade HandlersHTTP Upgrade HandlersText and Binary Message Exchanges
    View on GitHub↗4,066
  • gobwas/wsgobwas avatar

    gobwas/ws

    6,463View on GitHub↗

    This Go library provides low-level components for implementing high-performance WebSocket connections. It focuses on minimal memory allocations and efficient data throughput via a dedicated frame processor, an HTTP connection upgrader, and a compression layer. The project distinguishes itself through the use of zero-allocation buffer reuse to reduce garbage collection pressure. It operates directly on raw network bytes for frame parsing and manages the lifecycle of connections through state-based tracking. The library covers core network protocol capabilities including the transformation of

    gobwas/ws is a high-performance, low-level Go WebSocket library that fully implements RFC 6455 and provides an HTTP upgrader and compression, making it a solid choice for building real-time server applications, though it lacks built-in broadcast or pub/sub features.

    GoWebSocket ImplementationsWebSocket Protocol UpgradesGo WebSocket Libraries
    View on GitHub↗6,463
  • coder/websocketcoder avatar

    coder/websocket

    5,299View on GitHub↗

    This is a minimal WebSocket library for Go designed for bidirectional real-time communication. It serves as a network protocol implementation for managing handshakes, frame masking, and control signals to enable the exchange of text and binary messages over persistent connections. The library distinguishes itself by providing a connectivity layer that wraps browser WebSocket APIs for applications compiled to WebAssembly. It also functions as data compression middleware, utilizing deflate compression to reduce bandwidth usage for transmitted messages. The project covers a broad range of netwo

    coder/websocket is a minimal, idiomatic Go WebSocket library implementing RFC 6455 with handshake, framing, ping/pong keepalives, and text/binary message handling, but it does not include built-in broadcast or pub-sub, making it a good match for a WebSocket protocol library though narrower in scope.

    GoWebSocket Ping/Pong KeepalivesGo WebSocket LibrariesProtocol Upgrades
    View on GitHub↗5,299
  • tootallnate/java-websocketTooTallNate avatar

    TooTallNate/Java-WebSocket

    10,811View on GitHub↗

    Java-WebSocket is a collection of classes for implementing WebSocket clients and servers using pure Java. It provides a framework for hosting servers that manage connections via event-driven subclasses and tools for establishing client connections to remote servers. The library includes a secure communication tool for encrypting traffic using the WSS protocol and a compression library that uses per-message deflate extensions to reduce transmitted data size. It supports the configuration of cipher suites to limit encryption protocols and ensure compatible communication. The project enables bi

    This is a WebSocket library for Java, whereas you're looking for a Go library to implement the WebSocket protocol—so it's the right concept but in the wrong language.

    JavaHandshake Upgrade HandlersWebSocket ServersWebSockets
    View on GitHub↗10,811
  • sta/websocket-sharpsta avatar

    sta/websocket-sharp

    6,067View on GitHub↗

    websocket-sharp is a C# library implementation of the WebSocket protocol used for building bidirectional client and server applications. It enables real-time data exchange between endpoints via persistent connections. The library provides specialized networking capabilities, including SSL encrypted networking for secure transport and certificate validation. It also features HTTP proxy tunneling to route traffic through intermediary servers using basic or digest authentication. The project covers a broad range of capabilities, including the implementation of both WebSocket clients and servers

    This is a C# library for WebSocket protocol, not a Go library — it implements the same protocol but in the wrong language, so it does not serve your need for a Go-specific WebSocket solution.

    C#Handshake Upgrade HandlersWebSocket Servers
    View on GitHub↗6,067
  • aaugustin/websocketsaaugustin avatar

    aaugustin/websockets

    5,692View on GitHub↗

    websockets is a Python library for building WebSocket servers and clients using coroutines and the asyncio framework. It provides a complete toolkit for creating production-ready WebSocket applications, including a coroutine-based framework for handling connections, messages, and lifecycle events, as well as a client library for opening persistent bidirectional connections to remote endpoints. The library manages the full lifecycle of WebSocket connections, including handshake, message exchange, and graceful closure, with support for path-based routing to organize server logic across multiple

    This repository is a Python WebSocket library using asyncio, not a Go library—so it matches the WebSocket protocol capability but not the Go language requirement.

    PythonWebSocket Ping/Pong KeepalivesWebSocket Servers
    View on GitHub↗5,692
  • daltoniam/starscreamdaltoniam avatar

    daltoniam/Starscream

    8,639View on GitHub↗

    Starscream is a Swift WebSocket client library that provides a concrete implementation of the WebSocket protocol for iOS and macOS applications. It functions as an event-driven wrapper for establishing and managing bidirectional connections to send and receive text and binary frames over TCP. The library includes a secure WebSocket client capable of encrypting traffic and validating server identities. It manages the full connection lifecycle, from the initial handshake and header exchange to session termination with custom close codes. The project covers a broad range of networking capabilit

    Starscream is a Swift WebSocket client library for iOS/macOS, not a Go library, so it does not meet the language requirement for building Go-based real-time server applications.

    SwiftWebSocket Implementations
    View on GitHub↗8,639
  • unetworking/uwebsocketsuNetworking avatar

    uNetworking/uWebSockets

    18,888View on GitHub↗

    uWebSockets is a high-performance networking engine providing an HTTP web server and a WebSocket server framework. It implements a multi-threaded event loop architecture to deploy isolated application instances across multiple CPU cores and includes an SSL/TLS network layer for secure, encrypted communication. The project features a dedicated WebSocket pub/sub engine for distributing messages to specific groups of connected clients. It optimizes network throughput through syscall corking to reduce kernel overhead and employs payload compression to minimize data transfer sizes. The system cov

    uWebSockets is a high-performance WebSocket server framework written in C++, not Go, so while it implements the WebSocket protocol and pub/sub, it is not a Go library and cannot be used directly for building Go-based real-time applications.

    C++WebSocket Servers
    View on GitHub↗18,888
  • gorilla/muxgorilla avatar

    gorilla/mux

    21,832View on GitHub↗

    This project is a request router and web framework for the Go programming language. It provides a toolkit for matching incoming HTTP network requests to specific handler functions by evaluating criteria such as URL paths, request methods, headers, and hostnames. The framework distinguishes itself through its flexible matching capabilities, which include support for regular expressions and dynamic variable extraction from URL segments. It allows developers to organize routes into logical hierarchies, share common path prefixes, and maintain a central registry of named routes to facilitate prog

    gorilla/mux is an HTTP request router and web framework for Go, not a WebSocket protocol library; while it belongs to the same Gorilla toolkit that includes a separate WebSocket package, this repository itself does not implement RFC 6455 or the real-time features you need.

    GoWebSocket Servers
    View on GitHub↗21,832
  • labstack/echolabstack avatar

    labstack/echo

    32,451View on GitHub↗

    Echo is a high-performance, lightweight web framework for Go designed for building scalable RESTful APIs and web services. It provides a centralized environment for mapping network requests to handler functions, utilizing a fast radix-tree routing engine to ensure efficient request dispatching. The framework is built around a modular, middleware-centric pipeline that allows developers to execute reusable logic for cross-cutting concerns like authentication, logging, and security across the entire application. What distinguishes Echo is its focus on developer productivity through structured da

    Echo is a full-featured Go web framework with WebSocket support, but it is not a dedicated WebSocket library — its core identity is REST API building, so it’s a broader tool than the focused protocol implementation you’re after.

    GoWebSocket Servers
    View on GitHub↗32,451
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
gorilla/websocket24.5KGobsd-2-clauseMar 19, 2025
olahol/melody4.1KGobsd-2-clauseOct 28, 2025
gobwas/ws6.5KGoMITFeb 12, 2026
coder/websocket5.3KGoISCJun 15, 2026
tootallnate/java-websocket10.8KJavaMITJan 13, 2026
sta/websocket-sharp6.1KC#MITMay 28, 2026
aaugustin/websockets5.7KPythonBSD-3-ClauseJun 13, 2026
daltoniam/starscream8.6KSwiftApache-2.0May 16, 2024
unetworking/uwebsockets18.9KC++Apache-2.0Jun 1, 2026
gorilla/mux21.8KGoBSD-3-ClauseAug 15, 2024

Related searches

  • a php library for building websocket servers
  • a lightweight javascript library for websockets
  • a library for implementing WebSockets in Rust
  • a lightweight library for Java WebSockets
  • a C# library for implementing WebSockets
  • a real-time chat application using WebSockets
  • a high performance web framework for Go
  • a lightweight HTTP router for Go