Skip to content

Releases: SlickQuant/slick-net

Release v2.0.0

15 Feb 09:48

Choose a tag to compare

Changes

Changed

  • BREAKING: Switched slick::net from 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.hpp
    • set_log_handler(LogHandler)
    • clear_log_handler()
  • Added logging_tests for runtime logging hook dispatch behavior

Release v1.2.4

08 Feb 22:17

Choose a tag to compare

Changes

Fixed

  • WebSocket error handling now properly ignores SSL stream_truncated errors
    • Added ssl::error::stream_truncated to 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
  • WebSocket read handler now uses memory_order_release when 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

29 Jan 17:37

Choose a tag to compare

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

14 Jan 03:53

Choose a tag to compare

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

25 Nov 17:02

Choose a tag to compare

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 after open()
    • Messages are now queued during CONNECTING state 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 DISCONNECTED and CONNECTING states

Testing

  • Added comprehensive WebSocket unit tests for send-after-open scenarios:
    • SendImmediatelyAfterOpen_MessageQueuedAndSentAfterConnect - Single message test
    • SendImmediatelyAfterOpen_MultipleMessages - Multiple messages queuing test
    • SendImmediatelyAfterOpen_VerifyOrderPreserved - Message ordering verification
    • SendImmediatelyAfterOpen_LargeMessage - Large message (5KB) queueing test

Build System

  • Added CMake installation rules for proper package export
  • Created slick_net-config.cmake.in template 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

20 Nov 18:12

Choose a tag to compare

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 request
    • asio::awaitable<Response> async_post(url, data, headers) - Awaitable POST request
    • asio::awaitable<Response> async_put(url, data, headers) - Awaitable PUT request
    • asio::awaitable<Response> async_patch(url, data, headers) - Awaitable PATCH request
    • asio::awaitable<Response> async_del(url, data, headers) - Awaitable DELETE request
    • Clean async/await syntax using co_await for sequential or parallel HTTP operations
    • Uses caller's executor context (no service thread management required)
    • Supports both HTTP and HTTPS protocols

v1.1.2

14 Nov 03:28

Choose a tag to compare

  • Remove unnecessary slick_logger from slick_net link dependencies
  • Update CMakeLists to link slick_logger with example executables

v1.1.1

23 Oct 15:25

Choose a tag to compare

  • Fix slick_queue header include
  • Fix GitHub CI builds
  • Change Version to 3 digits

v1.1.0.1

21 Oct 23:35

Choose a tag to compare

  • 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

20 Oct 02:03

Choose a tag to compare

  • Added plain WebSocket (ws://) and plain Http (http://) protocol support
  • Added Comprehensive test coverage for plain HTTP (non-SSL) client