Version 1.0.0
[Summary]
StormByte Network is the C++26 networking layer of the StormByte suite.
Inherit Client or Server, define packets, and attach Buffer pipelines.
IPv4 and IPv6, framed request/response, POSIX and Winsock stay behind the public API.
Initial public release of StormByte-Network.
Added
- Endpoint abstraction (
Client/Server) for inheritance-oriented application protocols- Pluggable
DeserializePacketFunctionfor domain packet construction - Overridable
InputPipeline()/OutputPipeline()(Buffer::Pipeline) for compression, encryption, etc. - Request/response via framed
Transport::Packet(Send/Reply)
- Pluggable
- Client
- Connect over IPv4/IPv6 (
Connection::Protocol) - Status query and clean disconnect
- Connect over IPv4/IPv6 (
- Server
- Listen/accept loop on a dedicated thread
- Per-client worker threads and UUID-keyed client map
- Pure virtual
ProcessClientPacket()for application logic - Safe shutdown (stop accept, join workers, disconnect peers)
- Transport layer
Packetbase: opcode +DoSerialize()payload hookPROCESS_THRESHOLDto optionally pipeline payloadsFrameon-wire layout: opcode, payload size, payload- Pipeline processing on frame input/output when the threshold is met
- Sockets
- Cross-platform TCP client/server (POSIX + Windows Winsock)
- Non-blocking I/O, configurable SO_SNDBUF/SO_RCVBUF, TCP_NODELAY
- Chunked send/receive with timeouts and exact-size
ReceiveInto WaitForDatavia epoll (Linux), poll (other UNIX), WSA events (Windows)- Peer shutdown detection, peek, and lightweight ping
Reader/Writeradapters implementingBuffer::ExternalReader/ExternalWriter
- Connection helpers
- Singleton
Handler(WSAStartup/cleanup, last-error helpers) Infohostname resolution and sockaddr metadata- Connection status and read/write result enums with string helpers
- Singleton
- Exceptions:
ConnectionError,ConnectionClosed,PacketError,FrameError - CMake build, tests, LGPL-3.0-or-later
Notes
ClientandServerare designed to be subclassed, not used as generic drop-in types without derivation.- Public API surface is stable for the 1.x series; private socket/connection types remain implementation details.