Vix.cpp v2.5.1

Vix.cpp v2.5.1 is a stability and ecosystem cleanup release.

This release fixes an important HTTP session lifecycle issue, improves stricter compiler builds, removes legacy example configuration, standardizes examples around .env, updates runtime examples to the current Vix architecture, and adds a complete set of production-oriented WebSocket examples.

The focus of this release is consistency. HTTP, WebSocket, configuration, documentation, and examples are now better aligned with the current Vix runtime model.

HTTP session lifecycle fix

The most important fix in Vix.cpp v2.5.1 is in the core HTTP session lifecycle. HTTP sessions now close correctly on EOF instead of continuing to loop. This prevents infinite loops when clients close connections and improves the correctness of connection handling inside the core HTTP runtime. For a backend runtime, EOF handling is not a small detail. A server must treat connection shutdown as a normal lifecycle event, not as a condition that keeps the session alive indefinitely.

Cleaner strict builds

Vix.cpp v2.5.1 also improves strict compiler behavior around Asio headers. The async module now suppresses a false-positive -Wnull-dereference warning around Asio includes using diagnostic push/pop boundaries. This keeps strict warning builds cleaner without weakening warning behavior across the rest of the codebase. The goal is precise warning control: suppress known external false positives locally, but keep Vix code strict.

Runtime architecture alignment

This release updates existing examples to use RuntimeExecutor instead of the legacy threadpool API. That change matters because examples should represent the current architecture, not old internal patterns. Vix examples now better reflect the runtime direction established in the V2 series: a clearer execution model, cleaner lifecycle management, and less reliance on outdated APIs.

Configuration standardization

Vix.cpp v2.5.1 standardizes example configuration around .env.

Legacy config/config.json files were removed across HTTP and WebSocket examples. Examples now use .env.example files instead. This makes configuration simpler, more familiar, and easier to adapt for real backend projects. The release also removes old references to config/config.json, which helps avoid confusion when users copy examples into real applications.

Production-oriented WebSocket examples

Vix.cpp v2.5.1 adds a complete set of real-world WebSocket examples. The new examples include:

01_minimal_ws
02_http_ws_basic
03_chat_rooms
04_chat_persistent
05_chat_long_polling
06_metrics_runtime
07_client_runtime
08_realtime_dashboard

These examples are not simple demos.

They cover minimal WebSocket setup, HTTP and WebSocket integration, room-based messaging, persistent chat with SQLite, long-polling fallback, runtime metrics, native WebSocket clients, and a full realtime dashboard with HTTP, WebSocket, and UI integration. This gives developers a stronger starting point for real applications.

API documentation improvements

Vix.cpp v2.5.1 improves API discoverability in the core and WebSocket documentation. The core README now includes an OpenAPI and /docs section. The WebSocket README was also improved with clearer runtime usage and examples. This release highlights built-in API documentation endpoints:

/docs
/openapi.json

/docs provides interactive Swagger UI. /openapi.json provides the generated OpenAPI specification. The documentation remains offline-first, with no external CDN requirement.

WebSocket cleanup

The WebSocket module receives a small cleanup by removing the unused set_affinity placeholder function. This is a minor internal improvement, but it keeps the codebase cleaner and avoids exposing unused implementation ideas that are not part of the active runtime design.

Highlights

  • Fixed HTTP sessions closing on EOF instead of looping.
  • Suppressed a false-positive -Wnull-dereference warning around Asio headers.
  • Removed the unused WebSocket set_affinity placeholder.
  • Migrated all examples from config/config.json to .env.
  • Removed legacy JSON config files across HTTP and WebSocket examples.
  • Updated examples to use RuntimeExecutor.
  • Aligned examples with the current Vix runtime architecture.
  • Added production-oriented WebSocket examples.
  • Added minimal WebSocket, HTTP + WebSocket, chat rooms, persistent chat, long-polling fallback, metrics, native client, and realtime dashboard examples.
  • Added OpenAPI and /docs documentation sections.
  • Improved WebSocket README runtime usage and examples.
  • Standardized .env.example files across examples.
  • Emphasized offline-first API documentation without external CDN dependencies.

Compatibility

Vix.cpp v2.5.1 introduces no breaking changes. Existing HTTP and WebSocket runtime behavior remains compatible. Example configuration moved from legacy config/config.json files to .env, but this affects examples and documentation rather than existing user applications.

Projects using the current runtime architecture should continue to work normally.

Notes

Vix.cpp v2.5.1 is not a feature-heavy release, but it is an important cleanup release. It fixes a critical HTTP lifecycle issue, improves strict compiler behavior, removes outdated example configuration, aligns examples with RuntimeExecutor, and introduces a stronger WebSocket example suite.

This release continues the V2 direction: Vix is evolving from a runtime into a complete backend system where HTTP, WebSocket, API documentation, configuration, examples, and developer tooling are designed to work together.