Voltar ao ranking

uNetworking/uWebSockets

C++

Simple, secure & standards compliant web server for the most demanding of applications

websocketshttppubsubroutercommercialcross-platformproxy-protocol
Crescimento de estrelas
Estrelas
18.9k
Forks
1.9k
Crescimento semanal
Issues
35
5k10k15k
mar. de 2016ago. de 2019fev. de 2023jul. de 2026
README

Simple, secure1 & standards compliant2 web server for the most demanding3 of applications. Read more...



:closed_lock_with_key: Optimized security

Being meticulously optimized for speed and memory footprint, µWebSockets is fast enough to do encrypted TLS 1.3 messaging quicker than most alternative servers can do even unencrypted, cleartext messaging3.

Furthermore, we partake in Google's OSS-Fuzz with a ~95% daily fuzzing coverage4 with no sanitizer issues. LGTM scores us flawless A+ from having zero CodeQL alerts and we compile with pedantic warning levels.

:arrow_forward: Rapid scripting

µWebSockets is written entirely in C & C++ but has a seamless integration for Node.js backends. This allows for rapid scripting of powerful apps, using widespread competence. See µWebSockets.js.

:crossed_swords: Battle proven

We've been fully standards compliant with a perfect Autobahn|Testsuite score since 20162. µWebSockets powers many of the biggest crypto exchanges in the world, handling trade volumes of multiple billions of USD every day. If you trade crypto, chances are you do so via µWebSockets.

:battery: Batteries included

Designed around a convenient URL router with wildcard & parameter support - paired with efficient pub/sub features for WebSockets. µWebSockets should be the obvious, complete starting point for any real-time web project with high demands.

Start building your Http & WebSocket apps in no time; read the user manual and see examples. You can browse our TypeDoc for a quick overview.

/* One app per thread; spawn as many as you have CPU-cores and let uWS share the listening port */
uWS::SSLApp({

    /* These are the most common options, fullchain and key. See uSockets for more options. */
    .cert_file_name = "cert.pem",
    .key_file_name = "key.pem"
    
}).get("/hello/:name", [](auto *res, auto *req) {

    /* You can efficiently stream huge files too */
    res->writeStatus("200 OK")
       ->writeHeader("Content-Type", "text/html; charset=utf-8")
       ->write("<h1>Hello ")
       ->write(req->getParameter("name"))
       ->end("!</h1>");
    
}).ws<UserData>("/*", {

    /* Just a few of the available handlers */
    .open = [](auto *ws) {
        ws->subscribe("oh_interesting_subject");
    },
    .message = [](auto *ws, std::string_view message, uWS::OpCode opCode) {
        ws->send(message, opCode);
    }
    
}).listen(9001, [](auto *listenSocket) {

    if (listenSocket) {
        std::cout << "Listening on port " << 9001 << std::endl;
    } else {
        std::cout << "Failed to load certs or to bind to port" << std::endl;
    }
    
}).run();

:briefcase: Commercially supported

uNetworking AB is a Swedish consulting & contracting company dealing with anything related to µWebSockets; development, support and customer success.

Don't hesitate sending a mail if you're building something large, in need of advice or having other business inquiries in mind. We'll figure out what's best for both parties and make sure you're not falling into common pitfalls.

Special thanks to BitMEX, Bitfinex, Google, Coinbase, Bitwyre, AppDrag and deepstreamHub for allowing the project itself to thrive on GitHub since 2016 - this project would not be possible without these beautiful companies.

:wrench: Customizable architecture

µWebSockets builds on µSockets, a foundation library implementing eventing, networking and cryptography in three different layers. Every layer has multiple implementations and you control the compiled composition with flags. There are currently five event-loop integrations; libuv, ASIO, GCD and raw epoll/kqueue.

In a nutshell:

  • WITH_WOLFSSL=1 WITH_LIBUV=1 make examples builds examples utilizing WolfSSL and libuv
  • WITH_OPENSSL=1 make examples builds examples utilizing OpenSSL and the native kernel

See µSockets for an up-to-date list of flags and a more detailed explanation.

:handshake: Permissively licensed

Intellectual property, all rights reserved.

Where such explicit notice is given, source code is licensed Apache License 2.0 which is a permissive OSI-approved license with very few limitations. Modified "forks" should be of nothing but licensed source code, and be made available under another product name. If you're uncertain about any of this, please ask before assuming.

Repositórios relacionados
supabase/supabase

The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.

TypeScriptnpmApache License 2.0firebasesupabase
supabase.com
106.8k13.2k
nestjs/nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀

TypeScriptnpmMIT Licensenestjavascript
nestjs.com
76.2k8.4k
Kong/insomnia

The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage.

TypeScriptnpmApache License 2.0electron-apprest-api
insomnia.rest
39.9k2.4k
gorilla/websocket

Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.

GoGo ModulesBSD 2-Clause "Simplified" Licensegowebsocket
gorilla.github.io
24.8k3.6k
actix/actix-web

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Rustcrates.ioApache License 2.0rustweb
actix.rs
24.7k1.9k
joewalnes/websocketd

Turn any program that uses STDIN/STDOUT into a WebSocket server. Like inetd, but for WebSockets.

GoGo ModulesBSD 2-Clause "Simplified" Licensewebsocket-serverwebsockets
websocketd.com
17.5k1k
NodeBB/NodeBB

Node.js based forum software built for the modern web

JavaScriptnpmGNU General Public License v3.0nodebbjavascript
nodebb.org
15.2k3k
novnc/noVNC

VNC client web application

JavaScriptnpmOthernovncvnc-client
novnc.com
13.9k2.6k
Kludex/starlette

The little ASGI framework that shines. 🌟

PythonPyPIBSD 3-Clause "New" or "Revised" Licensepythonasync
starlette.dev
12.5k1.2k
InsForge/InsForge

The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.

TypeScriptnpmApache License 2.0aiai-agents
insforge.dev
12.4k1.1k
tsl0922/ttyd

Share your terminal over the web

CMIT Licensettyterminal
tsl0922.github.io/ttyd
12.1k1.2k
schlagmichdoch/PairDrop

PairDrop: Transfer Files Cross-Platform. No Setup, No Signup.

JavaScriptnpmGNU General Public License v3.0nodejspwa
pairdrop.net
11k658