whatisgithub

What is netpoll?

hnes/netpoll — explained in plain English

Analysis updated 2026-07-10 · repo last pushed 2022-02-03

1Audience · developerComplexity · 4/5DormantSetup · moderate

In one sentence

Netpoll is a high-performance networking library for Go, created by ByteDance, that handles fast communication between app parts using a non-blocking approach optimized for busy microservice architectures.

Mindmap

mindmap
  root((repo))
    What it does
      Fast server communication
      Manages many connections
      Detects broken connections
    Tech stack
      Go programming language
      TCP and Unix sockets
      Linux and macOS only
    Use cases
      Video streaming backends
      Microservice communication
      High-traffic RPC systems
    Audience
      Backend developers
      High-performance system builders
    Limitations
      No Windows support
      TLS on roadmap
      UDP not yet supported
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a high-traffic backend where services handle millions of rapid-fire requests.

USE CASE 2

Power an RPC framework where software components talk to each other directly.

USE CASE 3

Manage connections in a microservice architecture without per-connection slowdowns.

USE CASE 4

Create a video streaming backend with fast communication between login and recommendation services.

What is it built with?

GoTCPUnix Domain SocketsLinuxmacOS

How does it compare?

hnes/netpoll195516184-a11y/esp32-mcp-parenting-robota-bissell/unleash-lite
Stars111
LanguagePython
Last pushed2022-02-03
MaintenanceDormant
Setup difficultymoderatemoderatehard
Complexity4/53/54/5
Audiencedevelopergeneralresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a Linux or macOS environment, Windows is explicitly not supported, and TLS and UDP features are not yet available.

No license information was mentioned in the explanation, so the specific permissions and restrictions for using this code are unknown.

So what is it?

Netpoll is a networking toolkit built in Go by ByteDance, the company behind TikTok. It is designed to make the behind-the-scenes communication between different parts of an app, specifically in microservice architectures, much faster and more efficient. Think of it as a high-speed postal system for software, optimized for situations where servers are constantly sending rapid-fire requests back and forth. To understand why this exists, it helps to know a common pain point. Go, the programming language it is written in, normally handles network connections by assigning a lightweight background task (called a goroutine) to every single connection. When a server handles thousands of connections at once, all that juggling creates overhead. Netpoll avoids this by using a non-blocking approach, meaning it can manage many connections without getting bogged down. It also includes a way to easily check if a connection is still alive, which prevents servers from wasting time trying to use broken links. This tool is built for developers creating high-performance backend systems, particularly those using Remote Procedure Call (RPC) patterns where software components talk to each other directly. For example, a video streaming app might have one service handling user logins and another fetching video recommendations. If millions of users are active at once, the chatter between those services can become a bottleneck. Netpoll ensures that bottleneck doesn't happen. ByteDance actually uses it as the foundation for their own open-source RPC and HTTP frameworks. The project makes a few deliberate tradeoffs. It focuses on TCP and Unix Domain Sockets on Linux and macOS, and the README explicitly notes that Windows is not supported. Features like TLS encryption and UDP support are on the roadmap but not yet available. By keeping the scope narrow, the project delivers a highly specialized, fine-tuned tool for heavy-duty server communication rather than a general-purpose networking library.

Copy-paste prompts

Prompt 1
I want to use Netpoll to build a non-blocking TCP server in Go that handles thousands of concurrent connections without assigning a goroutine per connection. Show me a basic example.
Prompt 2
Help me set up a Netpoll-based connection manager that detects dead connections and stops the server from wasting resources trying to use broken links.
Prompt 3
I am building a microservice in Go that needs to handle rapid-fire RPC calls between a login service and a recommendation service. How do I use Netpoll to optimize this communication?
Prompt 4
Compare Netpoll to the standard Go net package for a high-performance microservice on Linux. What are the tradeoffs and how do I migrate my connection handling to Netpoll?

Frequently asked questions

What is netpoll?

Netpoll is a high-performance networking library for Go, created by ByteDance, that handles fast communication between app parts using a non-blocking approach optimized for busy microservice architectures.

Is netpoll actively maintained?

Dormant — no commits in 2+ years (last push 2022-02-03).

What license does netpoll use?

No license information was mentioned in the explanation, so the specific permissions and restrictions for using this code are unknown.

How hard is netpoll to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is netpoll for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.