4 dépôts
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 est un serveur proxy multi-protocole et une passerelle de contrôle d'accès réseau. Il fonctionne comme un transmetteur de trafic réseau capable de router le trafic TCP et UDP via HTTP, SOCKS et divers protocoles d'e-mail et de fichiers. Le projet fournit des capacités spécialisées pour l'inspection sécurisée du trafic, y compris le déchiffrement et l'analyse des flux HTTPS et TLS via l'usurpation de certificat et l'authentification mutuelle. Il prend en outre en charge l'anonymisation de l'identité du client en routant le trafic sortant via des chaînes de proxy amont récursives. Le logiciel couvre un large éventail de fonctions de gestion réseau, y compris le routage de protocole pour FTP, POP3 et SMTP, ainsi que le transfert de port et le pontage IPv4/IPv6. Il inclut des outils administratifs pour la limitation de bande passante, la limitation de connexion et le filtrage de contenu en temps réel utilisant des expressions régulières pour modifier les charges utiles et les en-têtes. La sécurité et l'observabilité sont gérées via un contrôle d'accès basé sur des politiques, la vérification d'identité RADIUS et une journalisation complète de l'activité réseau avec rotation automatique.
Optimizes network throughput by using the splice system call to minimize data copying between kernel and user space.
Ce projet est une référence technique et une collection de notes d'analyse interne axées sur le runtime et le compilateur du langage Go. Il fournit une analyse détaillée des rouages internes du langage, couvrant la gestion de la mémoire, le ramasse-miettes (garbage collection) et le modèle d'exécution du planificateur. Le matériel se distingue en fournissant des plongées approfondies dans les détails système de bas niveau, incluant une référence pour les instructions d'assemblage Go, l'utilisation des registres et l'interfaçage des appels système. Il analyse spécifiquement l'implémentation interne des primitives de concurrence, telles que le mécanisme de planification des goroutines, les opérations sur les canaux et les implémentations de verrous mutex. La couverture s'étend à la théorie de la construction des compilateurs, incluant l'analyse lexicale et syntaxique, ainsi que la mécanique du système de types et la gestion des interfaces. Il détaille également diverses techniques d'optimisation des performances, des utilitaires de diagnostic du runtime pour le traçage de la pile et des primitives d'E/S réseau.
Explains the use of the splice system call to move data between descriptors without user-space copying.