Releases: SlickQuant/slick-net
Releases · SlickQuant/slick-net
Release v2.0.0
Changes
Changed
- BREAKING: Switched
slick::netfrom header-only to static-library- Normalized header files to .hpp
- Separated HttpStream to its own header
http_stream.hpp - Added compiled sources under
src/(http_stream.cpp,http.cpp,websocket.cpp,websocket_session.cpp,logging.cpp) - Reduced downstream compile-time pressure by moving heavy Boost/OpenSSL implementation out of public headers
- Websocket is nolonger derived from std::enabled_shared_from_this
- Added PIMPL-based slim public headers for
Websocket - Added runtime logging hook API in
include/slick/net/logging.hppset_log_handler(LogHandler)clear_log_handler()
- Added
logging_testsfor runtime logging hook dispatch behavior
Release v1.2.4
Changes
Fixed
- WebSocket error handling now properly ignores SSL stream_truncated errors
- Added
ssl::error::stream_truncatedto the list of benign errors in read/write/close handlers - Prevents spurious error callbacks when SSL connections are closed without proper shutdown handshake
- Improved code formatting for better readability of error condition checks
- Added
- WebSocket read handler now uses
memory_order_releasewhen setting DISCONNECTED state for proper memory synchronization
Changed
- Removed INTERFACE precompiled headers to improve downstream project build times
- Downstream projects are no longer forced to precompile Boost.Beast/Asio and OpenSSL headers
- Projects can now opt-in to their own PCH strategy if desired
- Library functionality remains unchanged
Release v1.2.3
Changes
Fixed
- WebSocket open now rejects DISCONNECTING state to avoid overlapping reconnect/close races.
- WebSocket handshake no longer mutates the stored host with an appended port, preventing host corruption on reconnect.
- WebSocket write errors are now surfaced while connected instead of being ignored.
- Async HTTP request accounting now decrements even when the coroutine fails, allowing the service thread to stop.
Changed
- Updated slick-net-config.cmake.in file to remove cmake config warning.
Release v1.2.2
Changes
- Upgraded to slick-queue v1.2.2
- Renamed repository from slick_net to slick-net (hyphenated naming follows recommended convention)
- Changed export name from slick_net, slick::slick_net to slick::net
- Refactored repository name in CMake configuration files
- Updated documentation and build references to use new repository name
- Added release GitHub Workflow
- Updated license copyright years
- Improved Websocket unittest
v1.2.1
New Features
- vcpkg Package Manager Support: Full integration with vcpkg for easy installation and dependency management
- Created CMake config files for proper package discovery
- Ready for submission to official vcpkg registry
Improvements
- WebSocket Message Queueing: Enhanced
send()method to properly queue messages sent immediately afteropen()- Messages are now queued during
CONNECTINGstate and sent after connection is established - Ensures messages sent right after
open()are not lost and are delivered in order - Updated status check to allow queueing during both
DISCONNECTEDandCONNECTINGstates
- Messages are now queued during
Testing
- Added comprehensive WebSocket unit tests for send-after-open scenarios:
SendImmediatelyAfterOpen_MessageQueuedAndSentAfterConnect- Single message testSendImmediatelyAfterOpen_MultipleMessages- Multiple messages queuing testSendImmediatelyAfterOpen_VerifyOrderPreserved- Message ordering verificationSendImmediatelyAfterOpen_LargeMessage- Large message (5KB) queueing test
Build System
- Added CMake installation rules for proper package export
- Created
slick_net-config.cmake.intemplate for downstream projects - Added version compatibility checking (SameMajorVersion policy)
- Improved CMake target exports with proper namespace (
slick::slick_net)
CI/CD
- Updated GitHub Actions CI to use GCC 14 on Linux for full C++20 coroutine support
- Removed GCC 13 compatibility workarounds for awaitable HTTP tests
v1.2.0
New Features
- C++20 Coroutine Awaitable HTTP API: Added modern async/await interface for all HTTP methods
asio::awaitable<Response> async_get(url, headers)- Awaitable GET requestasio::awaitable<Response> async_post(url, data, headers)- Awaitable POST requestasio::awaitable<Response> async_put(url, data, headers)- Awaitable PUT requestasio::awaitable<Response> async_patch(url, data, headers)- Awaitable PATCH requestasio::awaitable<Response> async_del(url, data, headers)- Awaitable DELETE request- Clean async/await syntax using
co_awaitfor sequential or parallel HTTP operations - Uses caller's executor context (no service thread management required)
- Supports both HTTP and HTTPS protocols
v1.1.2
- Remove unnecessary slick_logger from slick_net link dependencies
- Update CMakeLists to link slick_logger with example executables
v1.1.1
- Fix slick_queue header include
- Fix GitHub CI builds
- Change Version to 3 digits
v1.1.0.1
- Update slick_queue to v1.1.0.2
- Change namespace from slick_net to slick::net
- Change include folder structure from include/slick_net to include/slick/net
v1.1.0.0
- Added plain WebSocket (ws://) and plain Http (http://) protocol support
- Added Comprehensive test coverage for plain HTTP (non-SSL) client