Skip to content

SNode.C 2.0.0

Latest

Choose a tag to compare

@VolkerChristian VolkerChristian released this 08 Oct 16:56
· 20 commits to master since this release
692c914

Connection Lifecycle, Resource Controls and Semantic Logging

SNode.C 2.0.0 brings major improvements to connection lifecycle management, resource controls, logging and application configuration.

📦 Get prebuilt packages

Install SNode.C without building from source: visit the SNodeC Project Package Repository for prebuilt packages and installation instructions.

Highlights

  • Independent connection and listener flows for each connect() and listen() call, with improved retry, reconnect and address fallback behavior.
  • More robust stream and TLS shutdown, handshake cancellation and connection lifetime handling.
  • Configurable write-queue limits and watermarks, HTTP parser and server limits, and WebSocket frame, message and fragment limits.
  • Descriptor-based HTTP response streaming and Unix-domain peer credentials.
  • Consolidated semantic logging with structured context, text/JSON output, filtering and asynchronous processing that drains during shutdown.
  • Checked runtime reconfiguration and the snodec-control command-line and terminal configuration interface.
  • Protocol fixes covering malformed HTTP chunked requests, IPv4/IPv6 resolution, TLS fallback and portable WebSocket buffer handling.
  • Improved component packaging, installed CMake consumers, documentation and GCC/Clang compatibility.

Upgrading from 1.x

This release introduces incompatible C++ API and ABI changes. Rebuild applications, libraries and dynamically loaded plugins against SNode.C 2.0. Do not mix 1.x and 2.0 C++ binaries in the same process.

Update code using the removed legacy logging macros to the current logging API. Check the return value of FileReader::open() before using it: an opening failure can return nullptr.

Validation

The release source passed all 212 framework tests with GCC 16 and all 227 framework and control-tool tests with Clang 21.

Full changelog: v1.0.2 → v2.0.0