awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
cloudwego avatar

cloudwego/netpoll

0
View on GitHub↗
4,583 stars·503 forks·Go·Apache-2.0·22 views

Netpoll

Netpoll is an event-driven network framework and non-blocking I/O library designed to manage concurrent TCP and Unix domain socket connections. It utilizes a non-blocking event loop to monitor file descriptors and trigger callbacks for read and write events, serving as a high-performance socket manager and TCP network poller.

The framework optimizes throughput across CPU cores by distributing incoming network connections across multiple pollers. It implements zero-copy networking primitives, using linked buffers and specialized memory management to read and write data while minimizing memory allocations and data duplication.

The library provides a comprehensive suite of capabilities for connection lifecycle management, including outbound dialing, keepalive configuration, and deadline-based timeout controls. It further optimizes performance through connection object caching, vectorized I/O operations, and load balancing strategies to distribute traffic across event loops.

The project includes utilities for managing server deployment, such as mechanisms for graceful shutdown by detaching listeners and awaiting active connection completion.

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.

Star history

Star history chart for cloudwego/netpollStar history chart for cloudwego/netpoll

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Netpoll

Similar open-source projects, ranked by how many features they share with Netpoll.
  • panjf2000/gnetpanjf2000 avatar

    panjf2000/gnet

    11,186View on 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
    View on GitHub↗11,186
  • tidwall/eviotidwall avatar

    tidwall/evio

    6,034View on 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
    View on GitHub↗6,034
  • tokio-rs/miotokio-rs avatar

    tokio-rs/mio

    7,024View on 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
    View on GitHub↗7,024
  • reactphp/socketreactphp avatar

    reactphp/socket

    1,285View on 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
    View on GitHub↗1,285
See all 30 alternatives to Netpoll→

Frequently asked questions

What does cloudwego/netpoll do?

Netpoll is an event-driven network framework and non-blocking I/O library designed to manage concurrent TCP and Unix domain socket connections. It utilizes a non-blocking event loop to monitor file descriptors and trigger callbacks for read and write events, serving as a high-performance socket manager and TCP network poller.

What are the main features of cloudwego/netpoll?

The main features of cloudwego/netpoll are: 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.

What are some open-source alternatives to cloudwego/netpoll?

Open-source alternatives to cloudwego/netpoll include: 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,…