14 repositorios
High-performance networking frameworks and event-driven I/O libraries for various languages.
Explore 14 awesome GitHub repositories matching part of an awesome list · Network Libraries. Refine with filters or upvote what's useful.
Netty is an asynchronous network framework designed for building scalable protocol servers and clients. It utilizes an event-driven reactor pattern and a non-blocking input/output model to decouple connection handling from application logic, allowing for the development of responsive network services that manage high volumes of concurrent connections. The framework distinguishes itself through a modular pipeline-based processing chain that enables the implementation of custom binary or text-based protocols. It provides a pluggable transport abstraction that allows developers to switch between
Asynchronous event-driven network framework for Java.
Tokio is an asynchronous runtime for the Rust programming language, designed to manage and execute concurrent tasks efficiently. It provides a multi-threaded execution environment that schedules lightweight tasks across available processor cores, utilizing a work-stealing scheduler to balance computational load. By employing a poll-based execution model and waker-based notifications, the runtime drives asynchronous operations forward without requiring active polling loops, ensuring efficient resource utilization. The project distinguishes itself through a comprehensive suite of tools for high
Asynchronous runtime and networking standard for Rust.
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
Cross-platform asynchronous I/O abstraction layer.
KCP is a low-latency transport protocol and reliability layer designed to provide TCP-like guaranteed delivery and ordering over UDP. It implements an automatic repeat request protocol to minimize network jitter and delays, prioritizing timeliness over bandwidth efficiency. The project distinguishes itself through a pluggable congestion controller and flow control logic, allowing the transport layer to be tuned for specific network environments. It includes a NAT keep-alive system that uses periodic heartbeat packets to maintain active communication paths and prevent address translation timeo
Fast and reliable ARQ protocol for low-latency communication.
Muduo is a C++11 event-driven network library and framework designed for building high-concurrency Linux servers. It provides a toolkit for implementing scalable network services and socket communication using non-blocking I/O and asynchronous event processing. The framework implements a multi-threaded TCP server architecture that distributes connection handling across multiple CPU threads to maximize server throughput. This is achieved through a one-loop-per-thread model and a reactor pattern implementation, which dispatch network events from a central demultiplexer to registered handler fun
Modern C++ network library based on the Reactor pattern.
gnet es un framework de redes de alto rendimiento basado en eventos para Go, diseñado para construir servidores escalables de TCP, UDP y sockets Unix. Funciona como un gestor de sockets no bloqueantes y un motor de red multi-reactor que maneja miles de conexiones simultáneas con un bajo consumo de memoria. El framework se distingue por utilizar una arquitectura multi-reactor que distribuye la E/S a través de múltiples bucles de eventos vinculados a hilos del sistema operativo para minimizar el cambio de contexto. Emplea polling activado por flancos (edge-triggered) para reducir la frecuencia de llamadas al sistema y utiliza buffers circulares elásticos para minimizar los costes de asignación y la presión sobre el recolector de basura. La biblioteca cubre una amplia gama de capacidades de red, incluyendo la distribución de conexiones con balanceo de carga entre núcleos de CPU, la ejecución asíncrona de tareas mediante pools de trabajadores y un sistema estructurado para la gestión del ciclo de vida de las conexiones. También proporciona primitivas para implementar protocolos binarios personalizados y gestionar opciones de sockets de bajo nivel.
High-performance, non-blocking event-driven Go network framework.
Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network sockets and file descriptors. It acts as a portable wrapper for operating system native polling systems, including epoll, kqueue, and IOCP, allowing applications to trigger events when resources are ready for reading or writing without blocking the execution thread. The library provides a non-blocking socket interface for managing TCP, UDP, and Unix sockets. It distinguishes itself through a vectored I/O implementation, enabling scatter-gather reads and writes across multiple buffer
Low-level non-blocking I/O library for Rust.
Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that avoids blocking program execution. It provides a portable, cross-platform interface for network socket communication across different operating systems, and manages multiple asynchronous operations without requiring explicit thread management or locking. The library implements a proactor-based asynchronous model where operations post completion handlers to a queue for later execution, and wraps operating system I/O multiplexing mechanisms like epoll, kqueue, IOCP, and select in
Cross-platform C++ library for network and low-level I/O.
Netpoll es un framework de red impulsado por eventos y una biblioteca de E/S sin bloqueo diseñada para gestionar conexiones concurrentes de TCP y sockets de dominio Unix. Utiliza un bucle de eventos sin bloqueo para monitorear descriptores de archivos y activar devoluciones de llamada para eventos de lectura y escritura, sirviendo como un gestor de sockets de alto rendimiento y un poller de red TCP. El framework optimiza el rendimiento a través de los núcleos de la CPU distribuyendo las conexiones de red entrantes entre múltiples pollers. Implementa primitivas de red de copia cero (zero-copy), utilizando búferes vinculados y gestión de memoria especializada para leer y escribir datos mientras se minimizan las asignaciones de memoria y la duplicación de datos. La biblioteca proporciona un conjunto completo de capacidades para la gestión del ciclo de vida de la conexión, incluyendo marcado saliente, configuración de keepalive y controles de tiempo de espera basados en plazos. Además, optimiza el rendimiento a través del almacenamiento en caché de objetos de conexión, operaciones de E/S vectorizadas y estrategias de balanceo de carga para distribuir el tráfico entre bucles de eventos. El proyecto incluye utilidades para gestionar el despliegue del servidor, como mecanismos para un apagado elegante desconectando los listeners y esperando la finalización de las conexiones activas.
High-performance Go network library for high-concurrency scenarios.
DotNetty is an asynchronous network framework and event-driven networking library for .NET. It is a port of the Netty architecture designed for building high-performance protocol servers and clients. The framework enables the development of network applications that handle concurrent connections and high-throughput data streaming without blocking execution threads. It supports the implementation of custom network protocols through defined encoding and decoding rules. The library utilizes a pipeline-based processing model and non-blocking I/O to manage network traffic. Its architecture incorp
C# port of the popular asynchronous network framework.
evpp is a C++ network library and framework designed for building high-performance network services using TCP, UDP, and HTTP protocols. It provides an asynchronous event loop to manage nonblocking I/O operations and concurrent network connections across multiple threads. The framework includes specialized tools for asynchronous DNS resolution and a system for asynchronous task scheduling using a managed thread pool. It also features a nonblocking HTTP server and client with integrated connection pooling. The project covers low-level transport layer connectivity for TCP and UDP, as well as hi
Modern high-performance C++ network library.
ENet reliable UDP networking library
Reliable UDP-based networking library for games.
Socket acceptor pool for TCP protocols.
TCP acceptor pool for Erlang/OTP applications.
//: # "/" //: # " Licensed to the Apache Software Foundation (ASF) under one" //: # " or more contributor license agreements. See the NOTICE file" //: # " distributed with this work for additional information" //: # " regarding copyright ownership. The ASF licenses this file" //: # "…
High-performance and scalable network application framework.