awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 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·3 Aufrufe

Netpoll

Netpoll ist ein ereignisgesteuertes Netzwerk-Framework und eine Non-Blocking-I/O-Bibliothek, die darauf ausgelegt ist, gleichzeitige TCP- und Unix-Domain-Socket-Verbindungen zu verwalten. Sie nutzt eine Non-Blocking-Event-Loop, um Dateideskriptoren zu überwachen und Callbacks für Lese- und Schreibereignisse auszulösen, und fungiert als leistungsstarker Socket-Manager und TCP-Netzwerk-Poller.

Das Framework optimiert den Durchsatz über CPU-Kerne hinweg, indem eingehende Netzwerkverbindungen auf mehrere Poller verteilt werden. Es implementiert Zero-Copy-Netzwerk-Primitive unter Verwendung von verknüpften Puffern und spezialisiertem Speichermanagement, um Daten zu lesen und zu schreiben und dabei Speicherallokationen und Datenduplizierungen zu minimieren.

Die Bibliothek bietet eine umfassende Suite an Funktionen für das Verbindungs-Lebenszyklusmanagement, einschließlich ausgehendem Dialing, Keepalive-Konfiguration und deadline-basierten Timeout-Kontrollen. Sie optimiert die Leistung weiter durch Caching von Verbindungsobjekten, vektorisierte I/O-Operationen und Load-Balancing-Strategien zur Verteilung des Datenverkehrs über Event-Loops.

Das Projekt enthält Dienstprogramme zur Verwaltung der Serverbereitstellung, wie etwa Mechanismen für ein Graceful Shutdown durch das Trennen von Listenern und das Abwarten des Abschlusses aktiver Verbindungen.

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-Verlauf

Star-Verlauf für cloudwego/netpollStar-Verlauf für cloudwego/netpoll

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht cloudwego/netpoll?

Netpoll ist ein ereignisgesteuertes Netzwerk-Framework und eine Non-Blocking-I/O-Bibliothek, die darauf ausgelegt ist, gleichzeitige TCP- und Unix-Domain-Socket-Verbindungen zu verwalten. Sie nutzt eine Non-Blocking-Event-Loop, um Dateideskriptoren zu überwachen und Callbacks für Lese- und Schreibereignisse auszulösen, und fungiert als leistungsstarker Socket-Manager und TCP-Netzwerk-Poller.

Was sind die Hauptfunktionen von cloudwego/netpoll?

Die Hauptfunktionen von cloudwego/netpoll sind: 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.

Welche Open-Source-Alternativen gibt es zu cloudwego/netpoll?

Open-Source-Alternativen zu cloudwego/netpoll sind unter anderem: 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,…

Open-Source-Alternativen zu Netpoll

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Netpoll.
  • panjf2000/gnetAvatar von panjf2000

    panjf2000/gnet

    11,186Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗11,186
  • tidwall/evioAvatar von tidwall

    tidwall/evio

    6,034Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗6,034
  • tokio-rs/mioAvatar von tokio-rs

    tokio-rs/mio

    7,024Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗7,024
  • reactphp/socketAvatar von reactphp

    reactphp/socket

    1,285Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗1,285
  • Alle 30 Alternativen zu Netpoll anzeigen→