15 Repos
Mechanisms for negotiating and upgrading standard HTTP connections to persistent protocols.
Distinguishing note: Focuses on the handshake process for protocol switching rather than general HTTP routing.
Explore 15 awesome GitHub repositories matching web development · Protocol Upgrades. Refine with filters or upvote what's useful.
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
Upgrades standard stateless HTTP connections to persistent bidirectional streams via header negotiation.
Fasthttp is a high-performance networking framework for Go, designed to maximize throughput and minimize memory overhead in demanding web applications. It functions as a specialized HTTP server and client library that prioritizes efficient resource management, allowing developers to build scalable services capable of handling massive concurrent traffic with minimal garbage collection pressure. The library distinguishes itself through a focus on zero-allocation processing and low-level optimization. It achieves this by recycling temporary request and response objects through managed pools and
Facilitates the transition of standard HTTP connections to persistent bidirectional communication channels.
websocketd is a CGI web server and process-to-WebSocket wrapper that transforms command line programs into WebSocket servers by bridging standard input and output streams to remote clients. It functions as a TLS-secured gateway that routes traffic to backend processes, allowing any executable using standard IO to be exposed via a web interface. The project uses directory-based endpoint mapping to automate the creation of URL paths from local executable files. It employs a process-per-connection model to isolate execution and forwards HTTP request metadata, such as cookies and query parameters
Handles the handshake protocol to upgrade standard HTTP requests into persistent bidirectional WebSocket streams.
Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program
Inspects and rejects HTTP upgrade requests to control WebSocket connection establishment.
systemd is a comprehensive system and service manager for Linux that orchestrates the entire operating system lifecycle. It functions as the primary init system, managing the transition from firmware to a fully initialized user space while providing a unified framework for service orchestration, hardware management, and resource control. The project distinguishes itself through its declarative, unit-based configuration model and dynamic dependency resolution, which allow for efficient, on-demand service activation and socket-based process management. It integrates deep system observability th
systemd detects the presence of a logging service to automatically switch to a native, metadata-rich structured logging protocol.
Uvicorn is an ASGI web application host designed for asynchronous Python web development. It serves applications through a standardized asynchronous server gateway interface to handle non-blocking network traffic and high-concurrency requests. The server manages both HTTP and WebSocket traffic, including the handshaking process required to establish persistent, full-duplex communication channels for real-time data exchange. For development workflows, the project includes a hot-reload mechanism that monitors the filesystem for source code changes and automatically restarts the server process.
Manages the protocol upgrade process to transition HTTP requests into persistent WebSocket connections.
Undici is a high-performance HTTP client for Node.js designed to execute network requests while minimizing resource overhead and latency. The project provides specialized capabilities for HTTP request pipelining to increase throughput and memory-based response caching to reduce redundant network calls. It also supports HTTP tunneling and proxying through the establishment of secure two-way communication channels via the connect method. Additionally, the client includes tools for web API polyfilling to provide standard browser network interfaces within Node.js environments. Its functional sur
Supports the standard HTTP upgrade mechanism to transition active connections to different protocols.
NanoHTTPD is a lightweight, embeddable HTTP server for Java applications. It allows developers to integrate web server capabilities directly into a Java project to handle incoming requests without requiring a standalone installation. The project provides specialized implementations for an HTTPS web server, a WebSocket server for bidirectional real-time communication, and a static file web server. These capabilities enable secure network traffic through SSL certificates and the delivery of local files with automatic MIME type detection. The server includes systems for request routing and hand
Implements the handshake mechanism for upgrading standard HTTP connections to bidirectional WebSocket streams.
http-parser ist eine C-Bibliothek für Zero-Copy-HTTP-Parsing, URL-Dekonstruktion sowie die Verwaltung von Protokoll-Upgrades und Chunked-Encoding. Sie bietet Utilities zum Extrahieren von Headern, Methoden und Statuscodes aus HTTP-Anfragen und -Antworten. Das Projekt enthält einen Zero-Copy-URL-Parser zur Zerlegung von Strings in einzelne Komponenten sowie einen Mechanismus zur Erkennung von Protokoll-Switch-Anfragen, um den genauen Byte-Offset zu identifizieren, an dem Nicht-HTTP-Daten beginnen. Zudem verfügt es über einen Decoder für die Verarbeitung von Chunked-Transfer-Encoded-Datenströmen.
Detects requests to switch protocols and identifies the byte offset where the new protocol stream begins.
http-parser is a C-based library for extracting request and response metadata from raw HTTP data streams. It utilizes a state-machine approach to identify message segments and boundaries. The project implements zero-copy string parsing and pointer-based URL deconstruction to avoid memory allocations and data duplication. It supports incremental stream processing to handle fragmented data chunks and includes mechanisms for decoding chunked encoding and managing network protocol upgrades.
Provides mechanisms to track the exact byte offset for transitioning HTTP connections to new protocols.
wstunnel is a tool that tunnels arbitrary TCP traffic through WebSocket connections, enabling communication across restrictive firewalls and proxies. It operates as both a client and server, encapsulating TCP data within WebSocket binary frames and multiplexing multiple connections over a single WebSocket link. The tool supports mutual TLS authentication, requiring clients to present signed certificates for verification before establishing a tunnel, and provides shared secret access control and tunnel forwarding restrictions for additional security. The project distinguishes itself by offerin
Establishes tunnels by upgrading standard HTTP connections to WebSocket protocol using the HTTP Upgrade header.
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
Provides mechanisms to upgrade standard HTTP connections to a persistent bidirectional WebSocket stream.
Rack ist ein minimales Interface, das standardisiert, wie Ruby-Webserver und Frameworks kommunizieren. Es bietet ein Web-Application-Interface und ein Web-Server-Interface, die es Ruby-Anwendungen ermöglichen, über verschiedene Server-Implementierungen hinweg zu laufen, indem ein gemeinsamer Environment-Hash und ein standardisiertes Response-Tupel verwendet werden. Das Projekt implementiert eine modulare HTTP-Middleware-Pipeline, die es ermöglicht, Requests und Responses durch eine Sequenz aufrufbarer Objekte abzufangen und zu modifizieren. Es unterstützt Low-Level-Verbindungsmanagement, einschließlich TCP-Verbindungs-Hijacking für benutzerdefinierte Protokollbehandlung, Protokoll-Upgrade-Signalisierung und bidirektionales Datenstreaming. Die Fähigkeiten erstrecken sich auf die Request- und Response-Behandlung, einschließlich des Lesens binärer Request-Streams und inkrementellem Response-Streaming. Es bietet Tools für Sitzungsmanagement, Application-Path-Routing und die Auslieferung statischer Dateien aus dem lokalen Dateisystem. Zur Qualitätssicherung enthält es Utilities zum Mocken von HTTP-Traffic und zur Simulation von Serverumgebungen. Das Projekt enthält ein Command-Line-Tool zum Starten kompatibler Webserver für das Hosting von Anwendungen.
Enables signaling the web server to upgrade the protocol via environment headers.
Emissary ist ein Kubernetes-API-Gateway, das eingehenden externen Datenverkehr verwaltet und an interne Microservices weiterleitet. Es nutzt einen Envoy-Proxy als zugrunde liegende Datenebene, um hochperformantes Traffic-Routing und Protokollübersetzung zu handhaben, mit einer Steuerungsebene, die Kubernetes-Custom-Resources und Annotationen in Proxy-Konfigurationen übersetzt. Das Projekt bietet spezialisierte Unterstützung für gRPC-Infrastruktur, einschließlich HTTP/2-Routing und gRPC-Web-Protokoll-Bridging für browserbasierte Clients. Es ermöglicht Zero-Trust-Sicherheit durch gegenseitige TLS-Verschlüsselung und delegiert die Identitätsprüfung an externe Authentifizierungsdienste. Traffic-Management-Funktionen umfassen gewichtetes Round-Robin-Load-Balancing für Canary-Deployments und Progressive Delivery sowie Layer-7-Load-Balancing und Session-Affinität. Das System unterstützt zudem Multi-Cluster-Networking via Cross-Cluster-Traffic-Bridging und integriert sich mit externen Rate-Limiting-Diensten, um Anfragevolumina zu begrenzen. Die Beobachtbarkeit wird durch eine Diagnoseschnittstelle, Integration von Distributed Tracing und den Export von Leistungsmetriken an externe Tools wie Prometheus und StatsD gehandhabt.
Negotiates and upgrades standard HTTP connections to other protocols by passing traffic to backend services.
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
Provides mechanisms for negotiating and upgrading standard HTTP connections to persistent WebSocket protocols.