4 repositorios
Transfers data between sockets directly at the kernel level to avoid copying through user space.
Distinct from Zero-Copy Data Access: Distinct from general zero-copy data access: specifically uses the splice() system call for network socket data transfer.
Explore 4 awesome GitHub repositories matching data & databases · Kernel-Level Data Splicing. Refine with filters or upvote what's useful.
Hertz is a high-performance Go HTTP framework designed for building scalable microservices, RESTful APIs, and AI applications. It functions as a high-performance web server and a communication framework for microservices, utilizing non-blocking I/O and zero-copy memory management to handle high-concurrency traffic. The project distinguishes itself through a microservices communication toolkit that supports high-efficiency remote procedure calls via gRPC and Thrift protocols. It implements an asynchronous middleware engine based on an onion model, allowing for a pluggable request-response pipe
Uses zero-copy APIs to send and receive data between processes and the kernel, avoiding memory buffer duplication.
HAProxy is a high-performance TCP and HTTP proxy that distributes traffic across multiple backend servers to ensure availability and fault tolerance for critical services. It operates in either TCP or HTTP mode, with an event-driven, single-threaded reactor that handles tens of thousands of connections without context switching, and supports kernel-level data transfer to minimize memory usage and latency. What distinguishes HAProxy is its configuration-file-first design, where all load-balancing rules and runtime behavior are defined in a declarative text file parsed at startup. It embeds a L
Transfers data between client and server connections directly at the kernel level to reduce memory usage and latency.
3proxy es un servidor proxy multiprotocolo y puerta de enlace de control de acceso a la red. Funciona como un reenviador de tráfico de red capaz de enrutar tráfico TCP y UDP a través de HTTP, SOCKS y varios protocolos de correo electrónico y archivos. El proyecto proporciona capacidades especializadas para la inspección segura de tráfico, incluyendo el descifrado y análisis de flujos HTTPS y TLS mediante suplantación de certificados y autenticación mutua. Soporta además la anonimización de la identidad del cliente enrutando el tráfico saliente a través de cadenas de proxy ascendentes recursivas. El software cubre una amplia gama de funciones de gestión de red, incluyendo enrutamiento de protocolos para FTP, POP3 y SMTP, así como reenvío de puertos y puenteo IPv4/IPv6. Incluye herramientas administrativas para limitación de ancho de banda, limitación de conexiones y filtrado de contenido en tiempo real utilizando expresiones regulares para modificar payloads y cabeceras. La seguridad y observabilidad se manejan mediante control de acceso basado en políticas, verificación de identidad RADIUS y registro completo de actividad de red con rotación automática.
Optimizes network throughput by using the splice system call to minimize data copying between kernel and user space.
Este proyecto es una referencia técnica y una colección de notas de análisis interno centradas en el runtime y compilador del lenguaje Go. Proporciona un desglose detallado de los aspectos internos del lenguaje, cubriendo la gestión de memoria, la recolección de basura (garbage collection) y el modelo de ejecución del programador. El material se distingue por proporcionar inmersiones profundas en detalles del sistema de bajo nivel, incluyendo una referencia para instrucciones de ensamblador de Go, uso de registros e interfaz de llamadas al sistema. Analiza específicamente la implementación interna de primitivas de concurrencia, como el mecanismo de programación de goroutines, operaciones de canales e implementaciones de bloqueos de mutex. La cobertura se extiende a la teoría de construcción de compiladores, incluyendo análisis léxico y sintáctico, así como la mecánica del sistema de tipos y la gestión de interfaces. También detalla varias técnicas de optimización de rendimiento, utilidades de diagnóstico de runtime para rastreo de pila (stack tracing) y primitivas de E/S de red.
Explains the use of the splice system call to move data between descriptors without user-space copying.