[Summary]
StormByte Network is the C++26 networking layer of the StormByte suite.
It depends on StormByte Base 1.1.0, StormByte Logger 1.1.0, and StormByte Buffer 1.1.0.
Inherit Client or Server, define packets, and attach Buffer pipelines.
IPv4 and IPv6, framed request/response, POSIX and Winsock stay behind the public API.
Changed
- Updated dependencies to StormByte Base 1.1.0, StormByte Logger 1.1.0, and StormByte Buffer 1.1.0.
- Server and socket concurrency
- Reduced non-blocking socket wait overhead by waiting for readability/writability only when the system call reports backpressure.
- Added private incremental server-side frame parsing while preserving the existing client/server API and worker behavior.
- Added a portable accept-loop wakeup channel so server shutdown does not tear down the listener to interrupt a wait.
- Replaced per-client workers with one event-loop thread for session parsing, packet processing, and synchronous replies.
- Added a bounded private packet worker pool with per-session in-flight control and EventLoop completions.
- Routed worker-originated client/server disconnect requests through EventLoop commands without worker self-joins.
- Added bounded per-session output streaming with non-blocking writes and POLLOUT/select-driven draining.
- Integration and lifecycle coverage
- Expanded client/server integration coverage with empty-payload, text-echo, and numeric-sum commands.
- Added disconnect/reconnect, slow-handler, concurrent-client, pending-task shutdown, and late-completion coverage.
- Documented client/server lifecycle invariants and the Windows
FD_SETSIZEboundary.
Fixed
-
Avoided passing unsupported
/GLand/LTCGflags to clang-cl Release builds by using CMake's interprocedural optimization setting. -
Fixed macOS polling portability when
POLLRDHUPis unavailable. -
Fixed the Windows test target's Winsock linkage using a consistent CMake link signature.
-
Guarded polymorphic large-data packet handling against unexpected packet types.