9 repositorios
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 es una aplicación de red y servidor proxy local diseñado como una herramienta contra la censura. Funciona como un proxy de elusión de inspección profunda de paquetes que fragmenta y modifica las solicitudes HTTP salientes para evadir filtros de red y censura. El proyecto logra esto implementando la fragmentación de solicitudes HTTP, dividiendo las solicitudes individuales en múltiples paquetes más pequeños para confundir a los firewalls. También realiza manipulación de flujos TCP y ofuscación de tráfico de red para ocultar la naturaleza de las solicitudes web y evitar bloqueos de contenido regionales. El sistema incluye capacidades para el reenvío de red transparente y la gestión de configuración basada en archivos para coordinar cómo se maneja el tráfico de red.
Uses a goroutine-per-connection model to enable non-blocking I/O and parallel processing of network traffic.
Boom es un generador de carga HTTP y herramienta de pruebas de estrés basado en Go. Funciona como una alternativa moderna a la utilidad ApacheBench, diseñada para enviar altos volúmenes de solicitudes a servidores web para medir el rendimiento y la estabilidad. La herramienta se centra en identificar el punto de ruptura de servicios web y APIs simulando cargas de tráfico pesadas. Se utiliza para realizar benchmarks de cuántas solicitudes por segundo puede manejar un servidor antes de experimentar tiempos de respuesta incrementados o errores. Sus capacidades cubren pruebas de estrés de servidores web y análisis de rendimiento de APIs para identificar problemas de estabilidad y cuellos de botella de hardware.
Utilizes a goroutine-per-connection model to maintain thousands of simultaneous connections without OS thread overhead.
Esta es una herramienta de enrutamiento de red escrita en Go que funciona como un router de tráfico de capa 4. Sirve como un reenviador de red TCP diseñado para enrutar el tráfico entrante desde un puerto local a una dirección de destino remota. El proyecto implementa capacidades de proxy inverso y reenvío de puertos locales para redirigir paquetes de red desde una interfaz local específica a un servidor backend. Gestiona el enrutamiento de tráfico de red vinculando listeners a direcciones IP y puertos locales, canalizando bytes crudos entre clientes y destinos remotos.
Implements a model that assigns a dedicated goroutine to every incoming TCP connection for parallel processing.
Este proyecto es un framework de benchmarking de rendimiento y probador de estrés de protocolos de red diseñado para evaluar la estabilidad del sistema bajo condiciones de alta concurrencia. Funciona como una utilidad de línea de comandos que simula volúmenes masivos de solicitudes simultáneas para identificar cuellos de botella en la infraestructura y verificar la confiabilidad del servicio. La herramienta se distingue por su orquestación agnóstica al protocolo, lo que permite pruebas de carga a través de diversos estándares incluyendo HTTP, WebSocket, gRPC y Radius. Soporta configuraciones de solicitud complejas, permitiendo a los usuarios inyectar encabezados personalizados, datos binarios y payloads externos para replicar comportamientos de cliente variados. Para garantizar la integridad de los datos durante las pruebas de estrés, el framework utiliza middleware de validación conectable que ejecuta lógica personalizada contra las respuestas del servidor en tiempo real. Más allá de la generación de carga básica, la herramienta proporciona una observabilidad integral agregando métricas de rendimiento en flujos en vivo para monitorear el throughput, la latencia y las distribuciones de error. Genera informes estadísticos detallados y se integra con servicios de inteligencia externos para proporcionar análisis y puntuación automatizados del rendimiento del sistema. El software se configura y gestiona completamente a través de parámetros de línea de comandos, facilitando la integración en flujos de trabajo de pruebas automatizados.
Uses lightweight execution threads to manage millions of simultaneous network connections with minimal memory overhead per request.