All notable changes to @vix/core are documented in this file.
The format is based on Keep a Changelog, and this project follows Semantic Versioning.
- Added a compile-time
VIX_BENCH_MODEfast path forGET /benchthat serves the benchmark response directly from the session layer.
- Reduced HTTP benchmark hot-path allocations by avoiding request header lookup temporaries and moving parsed headers into
Requestdirectly. - Cached HTTP
Dateheader generation to avoid per-response formatting overhead. - Reduced
/benchresponse bytes and reserved the session read buffer for common request sizes. - Switched async TCP writes to
async_write_some; the sessionwrite_all()loop continues to guarantee complete writes. - Enabled
TCP_NODELAYon accepted TCP sockets.
- Suppressed normal client disconnect noise (
EOF, connection reset) from session fatal-error logs.
- Removed legacy threadpool implementation and direct threadpool includes from core.
- Moved developer helper dependencies onto the
iomodule. - Removed old meta helpers from core.
- Updated OpenAPI documentation UI design.
- Classified response-write disconnects as normal network disconnects.
- Fixed standalone dependency layout and runtime benchmark linkage.
- Added coverage for response write disconnect handling.
- Aligned core HTTP JSON handling with the
vix::jsonAPI.
- Added a simple interactive input API.
- Added the stable options-based print API.
- Added an OpenAPI
/docsdocumentation section with offline API documentation highlights.
- Closed HTTP sessions on EOF instead of looping.
- Stabilized the HTTP request path and benchmark helpers.
- Optimized the benchmark-mode HTTP request path.
- Restored multi-threaded HTTP I/O.
- Removed debug traces from the HTTP hot path.
- Simplified
vix.hppinto a minimal umbrella aggregator. - Improved HTTP/WebSocket runtime lifecycle handling.
- Stabilized app and HTTP server shutdown.
- Removed
vix_warningsand sanitizer leakage from exported targets. - Switched umbrella includes to modular JSON and utils headers.
- Corrected
static_dirrouting and root mount matching.
- Removed
Config::getInstance().
- Enforced explicit configuration usage throughout core.
- Switched core configuration to
.env-based loading throughvix::env.
- Renamed the native HTTP namespace from
vhttptohttpacross core. - Added package configuration and unified export logic.
- Updated the bench route to use the
ResponseWrapperAPI.
- Improved configuration handling and structure.
- Eliminated warnings and improved safety in console and session code.
- Added template rendering with
res.renderand view integration. - Added the format API with a pure C++ test suite.
- Optimized the HTTP hot path and runtime scheduler.
- Improved scheduler, run queue, and task execution behavior.
- Switched core execution integration from the older threadpool model toward the runtime executor.
- Centralized traits and removed duplicate helpers.
- Improved worker shutdown and task rescheduling safety.
- Improved Windows compatibility and formatting behavior.
- Removed noisy internal debug logs from the shutdown path.
- Replaced Unicode box drawing with cross-platform fallback output.
- Maintenance release following the native HTTP migration.
- Maintenance release following the native HTTP migration.
- Introduced the native
vix::httprequest/response layer. - Added native
Request,Response, andResponseWrapperAPIs. - Added async-first HTTP server architecture powered by
vix::async. - Added runtime-backed HTTP server execution.
- Added standalone runtime tests and benchmark support.
- Reworked middleware integration for the native HTTP model.
- Slimmed the session hot path and added runtime benchmark mode.
- Routed request handling through
RuntimeExecutor. - Improved HTTP server shutdown idempotency and listener startup determinism.
- Removed the Boost.Beast HTTP stack from core.
- Removed old Beast-based public APIs.
- Silenced normal client disconnect EOF logs.
- Made runtime executor, HTTP server, and threadpool shutdown safer.
- Made app shutdown idempotent.
- Extracted cache and sync functionality into dedicated modules.
- Removed unused code left in core after modular cleanup.
- Removed logger context and console synchronization from HTTP access logs.
- Bound the HTTP acceptor during
run()soApp::listen(port)honors the requested port.
- Prevented Boost targets from leaking into exported CMake packages.
- Printed startup logs after the banner.
- Decoupled startup logging from access logs.
- Improved app middleware mounting and routing flow.
- Added foundational middleware primitives in core:
Context,Next,NextOnce,Hooks,Result, andError.
- Moved middleware primitives into core for reuse by higher-level middleware modules.
- Improved HTTP cache integration points and route middleware flow.
- Refined the HTTP facade, handler system, and configuration loading.
- Exposed public request/response types through umbrella headers.
- Improved
RequestHandlerconcepts and support for params, query values, and JSON request bodies. - Made configuration discovery more deterministic across relative, absolute, and project-root paths.
- Added modular C++ framework structure with
core,orm,cli,docs,middleware,websocket, devtools, and examples. - Added
Appfor simplified HTTP server setup. - Added router support for dynamic route parameters.
- Added JSON response helpers and basic middleware support.
- Integrated configurable logging through
spdlog. - Improved request parameter extraction performance.
- Fixed path parameter extraction for
string_viewinputs. - Fixed default unmatched-route JSON response behavior.
- Initial core module release with HTTP server, routing, and request handlers.
- Added simple JSON and text response examples.
- Added thread-safe server shutdown handling.
- Added performance measurement script integration.
- Optimized route parameter parsing to avoid
boost::regexoverhead.
- Fixed request handler compilation errors related to
string_viewmismatches. - Fixed minor app initialization and signal handling issues.
- Created the initial project skeleton, CMake setup, and placeholder module layout.