Skip to content

Releases: uNetworking/uWebSockets

v0.14.1

28 Mar 15:52
Compare
Choose a tag to compare

Placeholder tag to even out version mismatch between GitHub and NPM. Same commit as v0.14.0.

v0.14.0

28 Mar 10:48
Compare
Choose a tag to compare

This release is a major internal refactor and redesign aimed at C++ programmers specifically.

Features

  • Adds support for multiple event systems (libuv, ASIO & epoll).
  • Highly optimized memory usage - 37% of prior version 0.13.0.
  • Optimized parser and control frame receive paths - 4-8x the performance.
  • Optional thread safety of documented functions (compile with UWS_THREADSAFE).
  • Hub::connect now takes optional headers such as origin.
  • Removes CMake, improves native Makefile, adds native VC++.vcxproj.
  • Adds onTransfer callback.
  • Mingw64 compiler support.

Fixes

  • Sets SOCK_CLOEXEC on Linux and FreeBSD.
  • Properly handles WSAEWOULDBLOCK on Windows.
  • Memory leaks on send errors.
  • Parser crash on very long messages.
  • Travis CI now runs all native tests with every commit.
  • Removes Node.js addon from main repository, it now lives in bindings repo.

Interface changes

  • In prior versions a WebSocket could be represented by a void pointer, an uv_poll_t pointer or a WebSocket object. This kind of chameleon black magic is removed and there is now only WebSocket pointers in use.
  • WebSockets are handed out as pointers in all event handlers.
  • Send callbacks now give a pointer to a WebSocket rather than a void pointer.
  • There is no longer any getPollHandle() and you cannot construct a WebSocket from an uv_poll_t pointer.
  • Lots of encapsulation fixes, most structs are now exposing only the official API and not its internals.
  • uWS::Group::listen(uWS::TRANSFERS) is a new way to express uWS::Group::addAsync().

v0.13.0 (archived)

20 Feb 19:06
Compare
Choose a tag to compare
v0.13.0 (archived) Pre-release
Pre-release

This release is archived as the first version with programmable HTTP support.

  • Stability fixes for WebSocket client support.
  • Node.js: Fix for async upgrade failure on Windows.

v0.12.0 (archived)

03 Dec 07:50
Compare
Choose a tag to compare
v0.12.0 (archived) Pre-release
Pre-release

This release is archived as a performance hack for the Node.js addon. It works around dreadful Node.js performance of node::MakeCallback which improved performance 24%.

Just like how v0.9.0 had to work around node::Buffer performance problems, node::MakeCallback is just as horrific in terms of performance and should be avoided like the plague.

v0.11.0 (archived)

25 Oct 12:56
Compare
Choose a tag to compare
v0.11.0 (archived) Pre-release
Pre-release

This release is archived as a stable iteration on 0.10.0 with further features:

  • USE_MICRO_UV compilation flag to turn on µUV - the initial work that would later evolve into what is now USE_EPOLL in v0.14.0.
  • Support for compiling the Node.js addon as an intrinsic Node.js built-in.
  • Automatic heartbeats support, including custom TEXT (using one timer per server).
  • Node.js server.clients.forEach & server.clients.length

v0.10.0 (archived)

05 Oct 08:58
Compare
Choose a tag to compare
v0.10.0 (archived) Pre-release
Pre-release

This release is archived as a complete rewrite of the library. It was later made clear this release had many stability issues that got fixed up in v0.11.0.

  • Added WebSocket client support.
  • 20% throughput gains.
  • Greatly improved Node.js addon memory usage (65% of what 0.9.0 used).
  • Added the uws.native low-level interfaces later used in Primus transformer.
  • Permessage-deflate now requires 1 byte per socket with shared z_stream.
  • First release with decent code structure.
  • Added some automatic tests.
  • WebSocket transfer support to dynamically load balance multithreaded applications.
  • Concept of Groups and Hubs.
  • Reuse port support on Linux.
  • Path routing (GET /path).
  • Subprotocol support.
  • IPv6 / IPv4 both supported.
  • Many SSL fixes (prior versions had essentially completely broken SSL support).

v0.9.0 (archived)

11 Sep 16:54
Compare
Choose a tag to compare
v0.9.0 (archived) Pre-release
Pre-release

This release is archived mainly as a performance workaround for the terrible node::Buffer.

  • By using Uint8Array instead of Node.js buffers, throughput of the addon was improved by 100%.

v0.8.0 (archived)

22 Aug 18:11
Compare
Choose a tag to compare
v0.8.0 (archived) Pre-release
Pre-release

This release is archived mainly as the first Windows/Node.js version with SSL & permessage-deflate support.

  • Sends from different threads are now allowed, while race conditions are still manually handled.
  • Introduces EventSystem to explicitly allow multiple servers to run on the same event-loop.

v0.7.0 (archived)

29 Jun 08:24
Compare
Choose a tag to compare
v0.7.0 (archived) Pre-release
Pre-release

This release is archived as an overhaul to the native HTTP server.

  • Basic SSL support (cert / key).
  • Timeout incomplete HTTP requests after 15 seconds.
  • Limit HTTP request body length to 10kb.
  • SSL read fixes (do not drop connections on SSL_read -1).

v0.6.0 (archived)

26 Jun 03:29
Compare
Choose a tag to compare
v0.6.0 (archived) Pre-release
Pre-release

This release is archived as a major code restructuring, partial rewrite and clean-up.

  • using namespace std; removed.
  • No more opaque pointers.
  • Split over multiple source files.
  • More obvious separation of modules per purpose.
  • Parser is now a separate, almost purely functional module.
  • WebSocket and HTTPSocket for handling different protocols.