Skip to content

Latest commit

 

History

History
247 lines (154 loc) · 4.48 KB

File metadata and controls

247 lines (154 loc) · 4.48 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[1.11.0] - 2026-03-24

  • Refactored WebSocket module to use native vix::http layer
  • Removed implicit dependencies on Boost-based HTTP internals
  • Updated server, client and session implementations to new core API
  • Simplified protocol handling and routing integration
  • Improved internal consistency with vix::async runtime
  • Updated OpenAPI WebSocket documentation integration

Changes:

  • WebSocket now runs fully on top of the new Vix HTTP stack
  • Internal APIs aligned with Request / ResponseWrapper model
  • Examples updated to reflect new architecture

This release aligns the WebSocket module with Vix v2 core and completes the transition away from Boost-based internals.

[1.3.1] - 2026-01-02

Added

Changed

Removed

[1.3.0] - 2026-01-02

Added

Changed

Removed

[1.2.0] - 2025-12-23

Added

Changed

Removed

[1.1.2] - 2025-12-17

Added

Changed

Removed

[1.1.1] - 2025-12-14

Added

Changed

Removed

[1.1.0] - 2025-12-11

Added

Changed

Removed

websocket: introduce runtime layer and refresh examples

• Added new websocket runtime system: - include/vix/websocket/Runtime.hpp - include/vix/websocket/AttachedRuntime.hpp providing a dedicated io_context, lifecycle management, and attach-to-HTTP mode. • Added new example demo files: - examples/chat_room.cpp - examples/simple_client.cpp - examples/simple_server.cpp • Updated existing example sources: - advanced/server.cpp to use new runtime API & metrics - simple/minimal_ws_server.cpp cleanup and API alignment • Revised examples/CMakeLists.txt to: - build all demos consistently - expose runtime headers correctly This prepares the module for integration with Vix::App and upcoming WS routing features.

[1.0.0] - 2025-12-08

Added

Changed

Removed

[0.3.0] - 2025-12-08

Added

Changed

Removed

[0.2.0] - 2025-12-07

Added

Changed

Removed

[0.1.3] - 2025-12-07

Added

Changed

Removed

[0.1.2] - 2025-12-07

feat(websocket): add rooms + persistent message store (SQLite + WAL)

  • Added high-level WebSocket rooms API: • join_room(session, room) • leave_room(session, room) • broadcast_room_json(room, type, payload)

  • Updated websocket::Server to manage room membership and routing.

  • Added extensible persistence layer: • MessageStore (interface) - append(message) - list_by_room(room, limit, before_id) - replay_from(id)

    • SqliteMessageStore (SQLite3 + WAL enabled) - Creates table ws_messages(id, kind, room, type, ts, payload_json) - Safe concurrent writes, WAL mode for high performance - Full JSON persistence for payload

  • Added new files: • include/vix/websocket/MessageStore.hpp • include/vix/websocket/SqliteMessageStore.hpp • src/SqliteMessageStore.cpp • examples/config/config.json (WebSocket demo)

  • Updated existing components: • client.hpp → added JSON message support, room commands, auto-reconnect improvements • protocol.hpp → extended JsonMessage with kind, room, timestamp, id • server.hpp → room map, typed messages, storage hooks • CMakeLists.txt → install SqliteMessageStore and enable SQLite linkage • examples/CMakeLists.txt → added chat example with rooms + persistence

This commit completes: ✓ WebSocket rooms ✓ Strict JSON protocol with envelopes ✓ Persistent chat history via SQLite + WAL ✓ Ready for replay API and message batching

Added

Changed

Removed

[0.1.1] - 2025-12-05

Added

Changed

Removed

[0.1.0] - 2025-12-05

Added

Changed

Removed

[v0.1.0] - 2025-12-05

Added

  • Initial project scaffolding for the vixcpp/websocket module.
  • CMake build system:
    • STATIC vs header-only build depending on src/ contents.
    • Integration with vix::core and optional JSON backend.
    • Support for sanitizers via VIX_ENABLE_SANITIZERS.
  • Basic repository structure:
    • include/vix/websocket/ for public headers.
    • src/ for implementation files.
  • Release workflow:
    • Makefile with release, commit, push, merge, and tag targets.
    • changelog target wired to scripts/update_changelog.sh.