Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsMay 12, 2026·3 min de lecture

uWebSockets — Simple Secure High-Performance WebSocket and HTTP Server

A C++ library for building extremely fast WebSocket and HTTP servers, powering some of the largest real-time applications on the internet.

Introduction

uWebSockets is a C++ library that implements HTTP and WebSocket protocols with a focus on raw throughput and low memory usage. Its Node.js binding, uWebSockets.js, serves as a drop-in high-performance alternative for applications that need to handle millions of concurrent connections.

What uWebSockets Does

  • Provides HTTP/1.1 and WebSocket server implementations in optimized C++
  • Delivers throughput that can exceed 1 million messages per second on a single core
  • Offers a Node.js binding (uWebSockets.js) with a familiar API for JS developers
  • Supports TLS via OpenSSL or BoringSSL for encrypted connections
  • Handles pub/sub messaging patterns natively for broadcast workloads

Architecture Overview

uWebSockets is built on top of uSockets, a minimal event-loop library written in C. The architecture avoids heap allocations on the hot path and uses epoll/kqueue for non-blocking I/O. WebSocket frames are parsed with zero-copy techniques. The Node.js binding wraps the C++ core via N-API, giving JavaScript applications near-native performance without requiring a full C++ build chain.

Self-Hosting & Configuration

  • For C++ projects, install via vcpkg or include as a header-only library
  • For Node.js, install the prebuilt binary: npm install uWebSockets.js
  • Configure listen options (port, host, SSL certs) when calling the .listen() method
  • Set backpressure limits per WebSocket to control memory usage under load
  • Deploy behind a reverse proxy (Nginx, Caddy) or use its built-in TLS support directly

Key Features

  • One of the fastest HTTP and WebSocket implementations available in any language
  • Memory footprint measured in bytes per connection, not kilobytes
  • Built-in pub/sub for topic-based broadcasting without external message brokers
  • Graceful shutdown and per-socket backpressure management
  • Standards-compliant with Autobahn test suite passing

Comparison with Similar Tools

  • ws (Node.js) — pure JS WebSocket library; uWebSockets.js is 10-50x faster
  • Socket.IO — higher-level with fallbacks and rooms; uWebSockets focuses on raw protocol speed
  • Boost.Beast — C++ HTTP/WebSocket on Boost.Asio; uWebSockets has a simpler API and lower overhead
  • Bun — uses a fork of uWebSockets internally for its built-in server

FAQ

Q: Is uWebSockets.js a drop-in replacement for ws? A: The API differs slightly, but migration is straightforward. Most patterns map directly.

Q: Does it support HTTP/2? A: Currently it supports HTTP/1.1 and WebSocket. HTTP/2 is not implemented.

Q: Can I use it in production? A: Yes. It powers several large-scale real-time applications in production today.

Q: What platforms are supported? A: Linux, macOS, and Windows. The Node.js binding ships prebuilt binaries for all three.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires