awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
cloudwego avatar

cloudwego/netpoll

0
View on GitHub↗
4,583 estrellas·503 forks·Go·Apache-2.0·3 vistas

Netpoll

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.

Features

  • Event-Driven Networking - Provides a high-performance runtime model for handling concurrent connections using non-blocking I/O and multi-core distribution.
  • Non-Blocking Event Loops - Coordinates multiple non-blocking I/O pollers across CPU cores to maximize overall network throughput.
  • Non-Blocking TCP Servers - Implements TCP servers that use asynchronous I/O to handle many concurrent connections without blocking threads.
  • Network Pollers - Implements a high-performance TCP network poller that manages concurrent connections using a non-blocking event loop.
  • Connection Lifecycle Events - Manages the lifecycle of network sockets through event-driven notifications for open, close, and error events.
  • Network Listeners - Listens for incoming network connections and accepts them via a non-blocking event loop for high-performance I/O.
  • Non-Blocking Socket Managers - Provides a framework for managing non-blocking TCP and Unix domain sockets with integrated timeout controls.
  • Non-Blocking Socket I/O - Converts raw system file descriptors into managed objects that operate in non-blocking mode to prevent thread stalling.
  • Zero-Copy Networking - Extracts data from buffers using zero-copy or copy-based methods to handle incoming network streams efficiently.
  • Connection Timeout Management - Implements read, write, and idle deadlines to automatically terminate stalled connections and reclaim system resources.
  • I/O Polling - Monitors multiple file descriptors for I/O readiness and executes registered callbacks without blocking execution threads.
  • Multi-Core Scaling - Distributes incoming network connections across multiple event loops to maximize CPU utilization and throughput.
  • File Descriptor Event Monitoring - Registers and removes file descriptors from the event loop to monitor for readability, writability, and detachment.
  • File Descriptor Mappings - Converts raw system file descriptors into managed connection objects for use within an event loop.
  • Event-Driven I/O - Provides an asynchronous I/O framework using event notification loops to handle thousands of concurrent connections.
  • Event Loop Load Balancers - Distributes incoming network connections across multiple event loops using random or round-robin load balancing strategies.
  • Connection and Latency Optimizers - Reduces memory pressure and garbage collection overhead through specialized memory pools and connection reuse.
  • Connection Initialization Logic - Executes initialization logic and attaches contexts to new connections immediately after they are accepted.
  • Connection Keepalives - Allows setting keepalive intervals to maintain active network connections and detect disconnected peers.
  • Vectored I/O - Transfers data using multiple buffers in a single system call to reduce the overhead of frequent communication.
  • TCP Transmission Optimizations - Controls data transmission by toggling the delay flag to choose between immediate sending or buffered delivery.
  • Outbound Connection Dialing - Establishes outgoing connections to a remote address using request handlers and close callbacks.
  • Closure Callbacks - Runs registered handler functions automatically when a connection is closed by the peer or the system.
  • Unix Domain Socket Support - Establishes high-speed non-blocking communication between processes on the same machine using Unix domain sockets.
  • Connection Object Reuses - Caches and reuses connection objects to reduce garbage collection pressure and memory allocation overhead.
  • Memory Object Pools - Employs specialized memory object pools to minimize the cost of frequent allocations and context switching.
  • Dynamic Thread Scaling - Allows dynamic adjustment of active event loop threads to optimize throughput based on available CPU resources.
  • Connection Deadlines - Tracks read, write, and idle intervals to automatically terminate stalled connections and prevent resource leaks.
  • Event Loop Configuration - Adjusts settings for poller counts and buffer sizes to optimize how tasks are distributed and executed.
  • Lifecycle Callbacks - Implements event-driven hooks that execute custom logic during connection establishment, data arrival, and closure.
  • Object Pooling - Caches and reuses connection objects to minimize memory allocation overhead and reduce garbage collection frequency.
  • Zero-Copy Buffers - Reads and writes network data using slicing and peeking to minimize memory allocations and avoid duplicating data.
  • Network Libraries - High-performance Go network library for high-concurrency scenarios.

Historial de estrellas

Gráfico del historial de estrellas de cloudwego/netpollGráfico del historial de estrellas de cloudwego/netpoll

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Netpoll

Proyectos open-source similares, clasificados según cuántas características comparten con Netpoll.
  • panjf2000/gnetAvatar de panjf2000

    panjf2000/gnet

    11,186Ver en GitHub↗

    gnet is a high-performance event-driven networking framework for Go, designed for building scalable TCP, UDP, and Unix socket servers. It functions as a non-blocking socket manager and multi-reactor network engine that handles thousands of simultaneous connections with low memory overhead. The framework distinguishes itself by using a multi-reactor architecture that distributes I/O across multiple event loops pinned to operating system threads to minimize context switching. It employs edge-triggered polling to reduce system call frequency and utilizes elastic ring-buffers to minimize allocati

    Go
    Ver en GitHub↗11,186
  • tidwall/evioAvatar de tidwall

    tidwall/evio

    6,034Ver en GitHub↗

    Evio is a high-performance networking library for Go that provides a non-blocking socket framework. It utilizes an event loop to process TCP, UDP, and Unix domain socket traffic through a low-level asynchronous protocol interface. The project functions as a multi-core network load balancer, distributing connections across multiple CPU cores using round-robin or least-connections strategies. It supports socket reuse, allowing multiple sockets on a single host to bind to the same port. The library covers a broad range of socket management and packet processing capabilities, including multi-pro

    Gonetworking
    Ver en GitHub↗6,034
  • tokio-rs/mioAvatar de tokio-rs

    tokio-rs/mio

    7,024Ver en GitHub↗

    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

    Rustasynchronousnetworkingnon-blocking
    Ver en GitHub↗7,024
  • reactphp/socketAvatar de reactphp

    reactphp/socket

    1,285Ver en GitHub↗

    This library provides a framework for building event-driven, non-blocking network applications in PHP. It enables the development of asynchronous TCP and TLS servers and clients that manage multiple concurrent connections without stalling the main execution thread. By utilizing an event-loop architecture, the library handles network operations and data exchange through asynchronous streams, ensuring that the application remains responsive during high-throughput tasks. The project distinguishes itself through its integration with operating system primitives, such as raw file descriptors and Un

    PHPphpreactphpserver-socket
    Ver en GitHub↗1,285
Ver las 30 alternativas a Netpoll→

Preguntas frecuentes

¿Qué hace cloudwego/netpoll?

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.

¿Cuáles son las características principales de cloudwego/netpoll?

Las características principales de cloudwego/netpoll son: Event-Driven Networking, Non-Blocking Event Loops, Non-Blocking TCP Servers, Network Pollers, Connection Lifecycle Events, Network Listeners, Non-Blocking Socket Managers, Non-Blocking Socket I/O.

¿Qué alternativas de código abierto existen para cloudwego/netpoll?

Las alternativas de código abierto para cloudwego/netpoll incluyen: panjf2000/gnet — gnet is a high-performance event-driven networking framework for Go, designed for building scalable TCP, UDP, and Unix… tidwall/evio — Evio is a high-performance networking library for Go that provides a non-blocking socket framework. It utilizes an… tokio-rs/mio — Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network… reactphp/socket — This library provides a framework for building event-driven, non-blocking network applications in PHP. It enables the… jorisvink/kore — Kore is an event-driven web and WebSocket server framework designed for building high-performance web services and… ithewei/libhv — libhv is a high-performance C/C++ network library and event-driven I/O framework used to build TCP, UDP, SSL, HTTP,…