µWebSockets.js™ (it's "micro") is simple, secure[1] & standards compliant web I/O for the most demanding[2] of applications.

TypeScript docsRead more & user manual (C++ project)

In a nutshell.

µWebSockets.js is the Google V8 bindings to µWebSockets, one of the most efficient web servers available for C++ programming[2]. Bypassing the entire I/O stack of Node.js allows for unprecedented efficiency in back-end JavaScript - what you build stands on nothing but the best of C and C++. Scales to millions of active WebSockets using half a GB of user space memory[3].

npm install uNetworking/uWebSockets.js#v15.9.0

, or any such tag (see releases).

Simple.

There are tons of examples but here's the gist of it all:

const uWS = require('uWebSockets.js');

/* Non-SSL is simply uWS.App() */
uWS.SSLApp({
  /* There are tons of SSL options */
  key_file_name: 'misc/key.pem',
  cert_file_name: 'misc/cert.pem',
}).ws('/*', {
  /* For brevity we skip the other events */
  message: (ws, message, isBinary) => {
    let ok = ws.send(message, isBinary);
  }
}).any('/*', (res, req) => {
  /* Let's deny all Http */
  res.end('Nothing to see here!');
}).listen(9001, (listenSocket) => {
  if (listenSocket) {
    console.log('Listening to port 9001');
  }
});

Pay what you want.

Commercially developed on a sponsored/consulting basis; BitMEX, Bitfinex and Coinbase are current or previous sponsors. Contact me, the author for support, feature development or consulting/contracting.

µWebSockets.js is intellectual property licensed Apache 2.0 with limitations on trademark use. Forks must be clearly labelled as such and must not be confused with the original.

Description
uWebsockets.js for FreeBSD
Readme 1.8 MiB
Languages
C++ 85.4%
JavaScript 7.7%
C 5.2%
QMake 1.5%
Makefile 0.2%