9 repository-uri
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 este o aplicație de rețea și un server proxy local conceput ca un instrument anti-cenzură. Acesta funcționează ca un proxy de ocolire a inspecției profunde a pachetelor (DPI) care fragmentează și modifică cererile HTTP de ieșire pentru a evita filtrele de rețea și cenzura. Proiectul realizează acest lucru prin implementarea fragmentării cererilor HTTP, împărțind cererile unice în mai multe pachete mai mici pentru a induce în eroare firewall-urile. De asemenea, efectuează manipularea fluxului TCP și obfuscare a traficului de rețea pentru a ascunde natura cererilor web și a ocoli blocajele de conținut regionale. Sistemul include capabilități pentru redirecționarea transparentă a rețelei și gestionarea configurației bazată pe fișiere pentru a coordona modul în care este gestionat traficul de rețea.
Uses a goroutine-per-connection model to enable non-blocking I/O and parallel processing of network traffic.
Boom este un generator de încărcare HTTP și un instrument de testare a stresului bazat pe Go. Funcționează ca o alternativă modernă la utilitarul ApacheBench, conceput pentru a trimite volume mari de cereri către serverele web pentru a măsura performanța și stabilitatea. Instrumentul se concentrează pe identificarea punctului de rupere al serviciilor web și API-urilor prin simularea unor sarcini de trafic intense. Este utilizat pentru benchmarking-ul numărului de cereri pe secundă pe care un server le poate gestiona înainte de a experimenta timpi de răspuns crescuți sau erori. Capabilitățile sale acoperă testarea stresului serverelor web și analiza performanței API-urilor pentru a identifica problemele de stabilitate și blocajele hardware.
Utilizes a goroutine-per-connection model to maintain thousands of simultaneous connections without OS thread overhead.
Acesta este un instrument de rutare a rețelei scris în Go, care funcționează ca un router de trafic de nivel 4 (layer 4). Servește ca un forwarder de rețea TCP conceput pentru a ruta traficul de intrare de la un port local către o adresă de destinație la distanță. Proiectul implementează capabilități de reverse proxy și port forwarding local pentru a redirecționa pachetele de rețea de la o interfață locală specifică către un server backend. Gestionează rutarea traficului de rețea prin legarea listener-elor la adrese IP și porturi locale, transmițând octeți bruti între clienți și destinațiile la distanță.
Implements a model that assigns a dedicated goroutine to every incoming TCP connection for parallel processing.
Acest proiect este un framework de benchmarking de performanță și un tester de stres pentru protocoale de rețea, conceput pentru a evalua stabilitatea sistemului în condiții de concurență ridicată. Funcționează ca un utilitar command-line care simulează volume masive de cereri simultane pentru a identifica blocajele infrastructurii și a verifica fiabilitatea serviciului. Instrumentul se distinge prin orchestrarea agnostică față de protocol, care permite load testing-ul pe diverse standarde, inclusiv HTTP, WebSocket, gRPC și Radius. Suportă configurații complexe de cereri, permițând utilizatorilor să injecteze headere personalizate, date binare și payload-uri externe pentru a replica comportamente variate ale clienților. Pentru a asigura integritatea datelor în timpul testelor de stres, framework-ul utilizează middleware de validare pluggable care execută logică personalizată asupra răspunsurilor serverului în timp real. Dincolo de generarea de bază a load-ului, instrumentul oferă o observabilitate cuprinzătoare prin agregarea metricilor de performanță în fluxuri live pentru monitorizarea throughput-ului, latenței și distribuțiilor de erori. Generează rapoarte statistice detaliate și se integrează cu servicii de inteligență externă pentru a oferi analiză și punctaj automatizat al performanței sistemului. Software-ul este configurat și gestionat în întregime prin parametri command-line, facilitând integrarea în fluxuri de lucru de testare automatizate.
Uses lightweight execution threads to manage millions of simultaneous network connections with minimal memory overhead per request.