9 Repos
Architectural patterns where each client connection is managed by a dedicated worker thread.
Distinct from Process-Per-Connection Architectures: None of the candidates describe the general thread-per-connection concurrency model for web servers.
Explore 9 awesome GitHub repositories matching software engineering & architecture · Thread-Per-Connection Models. Refine with filters or upvote what's useful.
Zinx is a lightweight TCP server framework written in Go that provides a structured foundation for building scalable network applications. It combines a goroutine-pool worker model for concurrency control with message-ID-based routing, enabling efficient packet dispatching to registered handler functions. The framework distinguishes itself through its modular plugin architecture, which organizes server components like routers, connections, and message modules as interchangeable plugins for extensibility. It uses packet-header length prefixing for reliable TCP stream framing, assigns a dedicat
Assigns a dedicated goroutine per TCP connection for continuous packet reading and non-blocking I/O.
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
Assigns a dedicated worker thread to manage each client connection until the request-response cycle is completed.
This project is an open source relational database management system and SQL database designed for storing and managing structured data. It functions as a relational database for ensuring consistency and reliability, while also operating as a vector database for storing and querying high-dimensional vector embeddings. The system incorporates a columnar storage engine to optimize analytical query processing and large-scale data aggregation. It further enables vector similarity search, allowing users to find similar items by querying vector embeddings. The software covers a broad capability su
Employs a model where each client connection is managed by a dedicated worker thread.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Explains per-thread context execution for kernel-level isolation.
This is a collection of academic programming projects that accompany an operating systems textbook, designed to teach core OS concepts through hands-on implementation. The projects span the major subsystems of an operating system, including process scheduling, memory management, file systems, and concurrency, with students building components from scratch in a simulated environment. The projects are structured to cover the full range of OS internals, from low-level kernel development to user-space system programming. Students implement lottery-based CPU schedulers, dynamic heap memory allocat
Creates a multi-threaded HTTP server that handles multiple client requests simultaneously.
SpoofDPI ist eine Netzwerkanwendung und ein lokaler Proxy-Server, der als Anti-Zensur-Tool konzipiert ist. Er fungiert als Proxy zur Umgehung von Deep Packet Inspection, der ausgehende HTTP-Anfragen fragmentiert und modifiziert, um Netzwerkfilter und Zensur zu umgehen. Das Projekt erreicht dies durch die Implementierung von HTTP-Request-Fragmentierung, bei der einzelne Anfragen in mehrere kleinere Pakete aufgeteilt werden, um Firewalls zu verwirren. Es führt zudem TCP-Stream-Manipulation und Netzwerkverkehr-Obfuskation durch, um die Art der Webanfragen zu verbergen und regionale Inhaltsblockaden zu umgehen. Das System enthält Funktionen für transparentes Netzwerk-Forwarding und dateibasiertes Konfigurationsmanagement, um zu koordinieren, wie Netzwerkverkehr gehandhabt wird.
Uses a goroutine-per-connection model to enable non-blocking I/O and parallel processing of network traffic.
Boom ist ein Go-basiertes HTTP-Load-Generator- und Stresstest-Tool. Es fungiert als moderne Alternative zum ApacheBench-Utility und ist darauf ausgelegt, hohe Anfragemengen an Webserver zu senden, um Performance und Stabilität zu messen. Das Tool konzentriert sich auf die Identifizierung des Belastungslimits von Webdiensten und APIs durch die Simulation hoher Traffic-Lasten. Es wird für Benchmarking verwendet, um zu ermitteln, wie viele Anfragen pro Sekunde ein Server verarbeiten kann, bevor es zu erhöhten Antwortzeiten oder Fehlern kommt. Die Funktionen decken Webserver-Stresstests und API-Performance-Analysen ab, um Stabilitätsprobleme und Hardware-Engpässe zu identifizieren.
Utilizes a goroutine-per-connection model to maintain thousands of simultaneous connections without OS thread overhead.
Dies ist ein Netzwerk-Routing-Tool, das in Go geschrieben ist und als Layer-4-Traffic-Router fungiert. Es dient als TCP-Netzwerk-Forwarder, der eingehenden Traffic von einem lokalen Port an eine entfernte Zieladresse weiterleitet. Das Projekt implementiert Reverse-Proxy- und lokale Port-Forwarding-Funktionen, um Netzwerkpakete von einer spezifischen lokalen Schnittstelle an einen Backend-Server umzuleiten. Es verwaltet das Netzwerk-Traffic-Routing durch das Binden von Listenern an lokale IP-Adressen und Ports und leitet Rohdaten zwischen Clients und entfernten Zielen weiter.
Implements a model that assigns a dedicated goroutine to every incoming TCP connection for parallel processing.
This project is a performance benchmarking framework and network protocol stress tester designed to evaluate system stability under high-concurrency conditions. It functions as a command-line utility that simulates massive volumes of simultaneous requests to identify infrastructure bottlenecks and verify service reliability. The tool distinguishes itself through its protocol-agnostic orchestration, which allows for load testing across diverse standards including HTTP, WebSocket, gRPC, and Radius. It supports complex request configurations, enabling users to inject custom headers, binary data,
Uses lightweight execution threads to manage millions of simultaneous network connections with minimal memory overhead per request.