Skip to content

Releases: uNetworking/uWebSockets

v0.14.5

28 Dec 20:26
Compare
Choose a tag to compare
  • Timer and similar things now live in uS namespace

v0.14.4

10 Aug 19:59
Compare
Choose a tag to compare
  • Fixes to Hub::connect URI parser, esp. IPv6 addresses.
  • Do not emit connection error more than once.

v0.14.3

10 Aug 20:12
Compare
Choose a tag to compare
  • Configurable maxPayload option
  • Properly handle connection errors

v0.14.2

12 Apr 15:29
Compare
Choose a tag to compare
  • Epoll timer fixes.
  • Clear pending async poll changes on socket removal.
  • Updated multithreading example with reuseport.
  • Limit extension and subprotocol lengths.

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).