Releases: vixcpp/vix
v1.21.0
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]
Vix.cpp v1.21.0
This release stabilizes the new DB core module, improves CLI runtime output, and fixes several build/link issues across modules.
Highlights
- DB/ORM separation is now fully aligned:
vix::dbis the low-level core layer,vix::ormremains optional sugar on top. - CLI runtime output and error UX were refined to be clearer and less noisy.
- Improved reliability for MySQL detection/linking in diverse environments.
CLI (modules/cli)
- Fix: prevent duplicate runtime logs in some failure paths.
- Improve: runtime error detectors and diagnostics formatting.
- Improve: UX cleanup for run/dev flows (clearer output, less noise).
DB Core (modules/db)
- Fix: CMake/source/linkage issues across DB drivers.
- Fix: MySQL Connector/C++ discovery via fallback alias target (more robust CI/local setups).
- Improve: driver linkage consistency and feature flag reporting.
Umbrella / Modules
- Introduced
vix::dbas a core module and decoupled ORM tooling/drivers accordingly. - Synced submodules after DB/ORM compatibility fixes.
Upgrade notes
- If you enable
ORM, it automatically impliesDB. - If MySQL is enabled, ensure Connector/C++ is available (the fallback alias helps when CMake configs are missing).
v1.20.1 — Improved CLI Error UX & Build Feedback
✨ CLI — Error reporting & diagnostics
- Introduce Python-like compiler error rendering with code frames
(file:line:column + surrounding context) - Highlight only the faulty line with a red caret (
^) for instant readability - Safely truncate very long lines with UTF-8–aware ellipsis
- Add precise, Vix-style hints for common mistakes
(e.g.Response::json()misuse) - Hide verbose alternative diagnostics unless log level is
debugortrace - Improve
run/ script error reporting for clearer, actionable diagnostics
🔨 CLI — Build output & Ninja integration
- Restore live Ninja progress output (
[x/y %]) during builds - Filter noisy compiler command output in live mode
- Keep full raw build logs in
build.logfor post-mortem diagnostics - Let
ErrorHandlerdisplay structured, human-readable errors on failure - Introduce progress-only build output mode
- Fix unused variables and header warnings in build pipeline
🧩 Internal
- Minor internal cleanups to support improved error UX
- No breaking changes
v1.20.0 — Modules, Registry & Dependency Workflow (Latest)
✨ Nouveautés majeures
CLI modules overhaul
Introduction d’un layout app-first pour les modules Vix :
- Includes explicites et sûrs
- Règles de linkage claires et déterministes
- Préparation à un écosystème modulaire stable et scalable
Workflow Registry & Dépendances amélioré
- Nouveau
vix depscommand pour inspecter et gérer les dépendances - Correction du flux registry pour les dépendances transitives
- Meilleure cohérence entre registry local, store projet et modules
🧰 CLI
- Registry plus robuste pour les projets multi-modules
- Amélioration UX des commandes liées aux dépendances
- Base solide pour le futur workflow registry publish / consume
🧱 Architecture
Clarification nette entre :
-
Modules applicatifs
-
Modules système
-
Dépendances registry
-
Réduction des comportements implicites (includes / link automatiques)
v1.19.2
✨ Nouveautés
- CLI :
depscommand - Inspection claire des dépendances projet
- Support du registry dans le graphe de dépendances
🐛 Correctifs
- Correction du workflow de résolution des dépendances registry
- Stabilisation du store projet lors des ajouts / suppressions de deps
v1.19.1
✨ Nouveautés
- Registry publish workflow
- Commande CLI dédiée pour publier vers le registry Vix
- Préparation du pipeline : développeur → registry → consommateurs
🔧 Maintenance
- Bump CLI pour intégrer le workflow registry publish
- Nettoyage interne du flux release
v1.19.0
✨ Nouveautés majeures
Registry Git-based (V1)
sync,search,add- Fonctionnement 100 % offline-first après synchronisation
Project-scoped store
- Dépendances isolées par projet
- Nettoyage et GC du store
Améliorations UI CLI
- Couleurs unifiées
- Helpers UI partagés
- Sorties plus lisibles et cohérentes
v1.18.2
🐛 Correctifs
- Ajustements release et tooling
- Stabilisation du pipeline de versioning
v1.18.1
🛠 Correctifs critiques
- Suivi correct des vendored CMake deps
- Correction des erreurs d’installation chez les développeurs
- Bump CLI associé
v1.18.0 — Modular networking & secure P2P foundation
Highlights
- Major architectural cleanup and modular extraction
- P2P stack now fully decoupled from core
- Cache, net, and sync promoted to first-class modules
- Clear dependency layering across the ecosystem
🧩 New Modules
-
net
Low-level networking primitives and reachability utilities
(connectivity probing, network helpers). -
cache
Standalone HTTP cache engine with pluggable stores
(memory, LRU, file-based). -
sync
Offline-first synchronization engine
(WAL, outbox, retries, sync workers).
🧠 Core
- Removed embedded cache and sync implementations
- Core now focuses strictly on:
- HTTP server
- routing
- request / response lifecycle
- sessions & configuration
- Much cleaner public surface and faster compile times
🧱 Middleware
- Explicit dependency on cache (no implicit coupling)
- JSON and utils remain optional
- Scoped strictly to HTTP middleware pipeline
- Extensive smoke test coverage restored and stabilized
🌐 P2P
Integrated v0.5.1 (latest)
P2P v0.5.1 — Latest
- Removed dependency on
vix::core - Requires
vix::netonly sync,cache, andutilsare optional- Cleaner, modular build
- Internal refactors (discovery, node, router)
P2P v0.5.0
- Complete secure transport layer (Phase 6)
- Encrypted envelopes with AEAD
- Per-peer session keys derived from handshake
- Replay protection using nonce counters
- Decrypt-before-dispatch logic
- Handshake & control messages kept plaintext
- Foundation for secure WAL / Outbox sync (Phase 6.6)
P2P v0.4.0
- AEAD support (encrypt + authenticate)
- Extended envelope format (nonce + auth tag)
- Session key storage per peer
- Secure channels with nonce tracking
- NullCrypto implementation for development
P2P v0.3.0
- HTTP bootstrap service for peer discovery
- Bootstrap.hpp and BootstrapHttp.cpp
- Extended node lifecycle for bootstrap integration
- Manual test registry added
net
├─ cache
├─ sync
└─ p2p
└─ (optional sync integration)
core
└─ middleware
└─ cache (required)
This release establishes a clean, scalable foundation for:
- offline-first sync
- secure edge routing
- future P2P + WAL integration
- long-term maintainability
📐 Architectural State (v1.18.0)
v1.17.7 — Build & Run Reliability Improvements
🐛 Fixed
- CLI (run): Reuse the last successful build preset instead of defaulting to
dev-ninja, ensuring consistent behavior betweenvix buildandvix run. - CLI (run): Cleaned up script build error handling to provide clearer and
more actionable diagnostics. - CLI (run): Improved logging of environment declarations during script
execution for better debugging and transparency.
🛠 Improvements
- More predictable run flow after builds across presets.
- Smoother iterative workflows (build → run) with fewer surprises.
✅ Notes
No breaking changes. This release focuses on stability and correctness of the
CLI build/run pipeline.
v1.17.6 — CLI Stability & Toolchain Fixes
🐛 Fixed
-
CLI: Fixed
--linker lld|moldintegration.- Fast linker flags are now applied via
CMAKE_*_LINKER_FLAGS
(EXE,SHARED,MODULE) to ensure the selected linker is reliably
used at link time. - Removed incorrect propagation of linker flags through
CMAKE_C_FLAGS/CMAKE_CXX_FLAGS, preventing CMake
“unused variables” warnings and inconsistent behavior.
- Fast linker flags are now applied via
-
CLI: Improved
run/buildflow integration.- Unified preset and build-directory resolution across
RunDetail,RunFlow, andRunCommand. - Fixed edge cases that could lead to missing helper symbols
or mismatched build state during execution.
- Unified preset and build-directory resolution across
🛠 Internal
- Cleaner and more predictable linker configuration under CMake.
- Improved robustness of the CLI execution pipeline.
- No breaking changes.
✅ Notes
This release focuses on CLI correctness, toolchain reliability, and
a more stable execution model when using fast linkers and advanced build
configurations.
v1.17.5 — Performance & CLI Stability Release
🚀 Performance
- core: remove logger context and console synchronization from HTTP access logs, reducing contention under load
- utils: snapshot
spdloglogger instances to avoid global mutex contention and improve logging throughput
🖥️ CLI & Tooling
- cli(run): remove capture-based configure phase and switch to live execution for more predictable runtime behavior
- cli: clean and stabilize CMake output during configure while keeping build and run steps intact
- cli: remove dead helpers left after the build UX rewrite
🧹 Maintenance
- Internal cleanup across
cli,core, andutilsmodules - No breaking changes
✅ Notes
This release focuses on runtime performance, log scalability, and CLI robustness, especially under high load and iterative development workflows.
v1.17.4 — 2026-01-02
🔧 Fixed
-
CMake / Packaging
- Fixed
find_package(Vix)failures caused by missingBoost::filesystem/Boost::systemtargets. - Ensu...
- Fixed
v1.20.1
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]
v1.20.1 — Improved CLI Error UX & Build Feedback
✨ CLI — Error reporting & diagnostics
- Introduce Python-like compiler error rendering with code frames
(file:line:column + surrounding context) - Highlight only the faulty line with a red caret (
^) for instant readability - Safely truncate very long lines with UTF-8–aware ellipsis
- Add precise, Vix-style hints for common mistakes
(e.g.Response::json()misuse) - Hide verbose alternative diagnostics unless log level is
debugortrace - Improve
run/ script error reporting for clearer, actionable diagnostics
🔨 CLI — Build output & Ninja integration
- Restore live Ninja progress output (
[x/y %]) during builds - Filter noisy compiler command output in live mode
- Keep full raw build logs in
build.logfor post-mortem diagnostics - Let
ErrorHandlerdisplay structured, human-readable errors on failure - Introduce progress-only build output mode
- Fix unused variables and header warnings in build pipeline
🧩 Internal
- Minor internal cleanups to support improved error UX
- No breaking changes
v1.20.0 — Modules, Registry & Dependency Workflow (Latest)
✨ Nouveautés majeures
CLI modules overhaul
Introduction d’un layout app-first pour les modules Vix :
- Includes explicites et sûrs
- Règles de linkage claires et déterministes
- Préparation à un écosystème modulaire stable et scalable
Workflow Registry & Dépendances amélioré
- Nouveau
vix depscommand pour inspecter et gérer les dépendances - Correction du flux registry pour les dépendances transitives
- Meilleure cohérence entre registry local, store projet et modules
🧰 CLI
- Registry plus robuste pour les projets multi-modules
- Amélioration UX des commandes liées aux dépendances
- Base solide pour le futur workflow registry publish / consume
🧱 Architecture
Clarification nette entre :
-
Modules applicatifs
-
Modules système
-
Dépendances registry
-
Réduction des comportements implicites (includes / link automatiques)
v1.19.2
✨ Nouveautés
- CLI :
depscommand - Inspection claire des dépendances projet
- Support du registry dans le graphe de dépendances
🐛 Correctifs
- Correction du workflow de résolution des dépendances registry
- Stabilisation du store projet lors des ajouts / suppressions de deps
v1.19.1
✨ Nouveautés
- Registry publish workflow
- Commande CLI dédiée pour publier vers le registry Vix
- Préparation du pipeline : développeur → registry → consommateurs
🔧 Maintenance
- Bump CLI pour intégrer le workflow registry publish
- Nettoyage interne du flux release
v1.19.0
✨ Nouveautés majeures
Registry Git-based (V1)
sync,search,add- Fonctionnement 100 % offline-first après synchronisation
Project-scoped store
- Dépendances isolées par projet
- Nettoyage et GC du store
Améliorations UI CLI
- Couleurs unifiées
- Helpers UI partagés
- Sorties plus lisibles et cohérentes
v1.18.2
🐛 Correctifs
- Ajustements release et tooling
- Stabilisation du pipeline de versioning
v1.18.1
🛠 Correctifs critiques
- Suivi correct des vendored CMake deps
- Correction des erreurs d’installation chez les développeurs
- Bump CLI associé
v1.18.0 — Modular networking & secure P2P foundation
Highlights
- Major architectural cleanup and modular extraction
- P2P stack now fully decoupled from core
- Cache, net, and sync promoted to first-class modules
- Clear dependency layering across the ecosystem
🧩 New Modules
-
net
Low-level networking primitives and reachability utilities
(connectivity probing, network helpers). -
cache
Standalone HTTP cache engine with pluggable stores
(memory, LRU, file-based). -
sync
Offline-first synchronization engine
(WAL, outbox, retries, sync workers).
🧠 Core
- Removed embedded cache and sync implementations
- Core now focuses strictly on:
- HTTP server
- routing
- request / response lifecycle
- sessions & configuration
- Much cleaner public surface and faster compile times
🧱 Middleware
- Explicit dependency on cache (no implicit coupling)
- JSON and utils remain optional
- Scoped strictly to HTTP middleware pipeline
- Extensive smoke test coverage restored and stabilized
🌐 P2P
Integrated v0.5.1 (latest)
P2P v0.5.1 — Latest
- Removed dependency on
vix::core - Requires
vix::netonly sync,cache, andutilsare optional- Cleaner, modular build
- Internal refactors (discovery, node, router)
P2P v0.5.0
- Complete secure transport layer (Phase 6)
- Encrypted envelopes with AEAD
- Per-peer session keys derived from handshake
- Replay protection using nonce counters
- Decrypt-before-dispatch logic
- Handshake & control messages kept plaintext
- Foundation for secure WAL / Outbox sync (Phase 6.6)
P2P v0.4.0
- AEAD support (encrypt + authenticate)
- Extended envelope format (nonce + auth tag)
- Session key storage per peer
- Secure channels with nonce tracking
- NullCrypto implementation for development
P2P v0.3.0
- HTTP bootstrap service for peer discovery
- Bootstrap.hpp and BootstrapHttp.cpp
- Extended node lifecycle for bootstrap integration
- Manual test registry added
net
├─ cache
├─ sync
└─ p2p
└─ (optional sync integration)
core
└─ middleware
└─ cache (required)
This release establishes a clean, scalable foundation for:
- offline-first sync
- secure edge routing
- future P2P + WAL integration
- long-term maintainability
📐 Architectural State (v1.18.0)
v1.17.7 — Build & Run Reliability Improvements
🐛 Fixed
- CLI (run): Reuse the last successful build preset instead of defaulting to
dev-ninja, ensuring consistent behavior betweenvix buildandvix run. - CLI (run): Cleaned up script build error handling to provide clearer and
more actionable diagnostics. - CLI (run): Improved logging of environment declarations during script
execution for better debugging and transparency.
🛠 Improvements
- More predictable run flow after builds across presets.
- Smoother iterative workflows (build → run) with fewer surprises.
✅ Notes
No breaking changes. This release focuses on stability and correctness of the
CLI build/run pipeline.
v1.17.6 — CLI Stability & Toolchain Fixes
🐛 Fixed
-
CLI: Fixed
--linker lld|moldintegration.- Fast linker flags are now applied via
CMAKE_*_LINKER_FLAGS
(EXE,SHARED,MODULE) to ensure the selected linker is reliably
used at link time. - Removed incorrect propagation of linker flags through
CMAKE_C_FLAGS/CMAKE_CXX_FLAGS, preventing CMake
“unused variables” warnings and inconsistent behavior.
- Fast linker flags are now applied via
-
CLI: Improved
run/buildflow integration.- Unified preset and build-directory resolution across
RunDetail,RunFlow, andRunCommand. - Fixed edge cases that could lead to missing helper symbols
or mismatched build state during execution.
- Unified preset and build-directory resolution across
🛠 Internal
- Cleaner and more predictable linker configuration under CMake.
- Improved robustness of the CLI execution pipeline.
- No breaking changes.
✅ Notes
This release focuses on CLI correctness, toolchain reliability, and
a more stable execution model when using fast linkers and advanced build
configurations.
v1.17.5 — Performance & CLI Stability Release
🚀 Performance
- core: remove logger context and console synchronization from HTTP access logs, reducing contention under load
- utils: snapshot
spdloglogger instances to avoid global mutex contention and improve logging throughput
🖥️ CLI & Tooling
- cli(run): remove capture-based configure phase and switch to live execution for more predictable runtime behavior
- cli: clean and stabilize CMake output during configure while keeping build and run steps intact
- cli: remove dead helpers left after the build UX rewrite
🧹 Maintenance
- Internal cleanup across
cli,core, andutilsmodules - No breaking changes
✅ Notes
This release focuses on runtime performance, log scalability, and CLI robustness, especially under high load and iterative development workflows.
v1.17.4 — 2026-01-02
🔧 Fixed
-
CMake / Packaging
- Fixed
find_package(Vix)failures caused by missingBoost::filesystem/Boost::systemtargets. - Ensured all required dependencies are resolved before loading
VixTargets.cmake. - Removed deprecated
FindBoostbehavior in exported configs (CMP0167-safe). - Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
- Fixed
-
Core
- Removed
Boost::filesystemfromvix::corepublic link interface. - Restricted Boost dependency to
Boost::systemonly (Asio / Beast). - Updated HTTP server internals and headers accordingly.
- Prevented Boost symbols from leaking into consumer CMake targets.
- Removed
-
WebSocket
- Cleaned
vix::websocketexported link interface. - Fixed missing
Boost::systemtarget errors in downstream applications. - Improved module behavior with modern CMake dependency resolution.
- Cleaned
✨ Improved
- More robust umbrella CMake configuration for multi-module installs.
- Clearer separation between internal dependencies and public API surface.
- Better cross-platform developer experience when using:
find_package(Vix CONFIG REQUIRED)
v1.17.3
Added
-
vix build --target <triple>: cross-compilation support with auto-generated CMake toolchain.- Automatically generates
vix-toolchain.cmake - Passes
CMAKE_TOOLCHAIN_FILEandVIX_TARGET_TRIPLE
...
- Automatically generates
v1.20.0
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]
v1.20.0 — Modules, Registry & Dependency Workflow (Latest)
✨ Nouveautés majeures
CLI modules overhaul
Introduction d’un layout app-first pour les modules Vix :
- Includes explicites et sûrs
- Règles de linkage claires et déterministes
- Préparation à un écosystème modulaire stable et scalable
Workflow Registry & Dépendances amélioré
- Nouveau
vix depscommand pour inspecter et gérer les dépendances - Correction du flux registry pour les dépendances transitives
- Meilleure cohérence entre registry local, store projet et modules
🧰 CLI
- Registry plus robuste pour les projets multi-modules
- Amélioration UX des commandes liées aux dépendances
- Base solide pour le futur workflow registry publish / consume
🧱 Architecture
Clarification nette entre :
-
Modules applicatifs
-
Modules système
-
Dépendances registry
-
Réduction des comportements implicites (includes / link automatiques)
v1.19.2
✨ Nouveautés
- CLI :
depscommand - Inspection claire des dépendances projet
- Support du registry dans le graphe de dépendances
🐛 Correctifs
- Correction du workflow de résolution des dépendances registry
- Stabilisation du store projet lors des ajouts / suppressions de deps
v1.19.1
✨ Nouveautés
- Registry publish workflow
- Commande CLI dédiée pour publier vers le registry Vix
- Préparation du pipeline : développeur → registry → consommateurs
🔧 Maintenance
- Bump CLI pour intégrer le workflow registry publish
- Nettoyage interne du flux release
v1.19.0
✨ Nouveautés majeures
Registry Git-based (V1)
sync,search,add- Fonctionnement 100 % offline-first après synchronisation
Project-scoped store
- Dépendances isolées par projet
- Nettoyage et GC du store
Améliorations UI CLI
- Couleurs unifiées
- Helpers UI partagés
- Sorties plus lisibles et cohérentes
v1.18.2
🐛 Correctifs
- Ajustements release et tooling
- Stabilisation du pipeline de versioning
v1.18.1
🛠 Correctifs critiques
- Suivi correct des vendored CMake deps
- Correction des erreurs d’installation chez les développeurs
- Bump CLI associé
v1.18.0 — Modular networking & secure P2P foundation
Highlights
- Major architectural cleanup and modular extraction
- P2P stack now fully decoupled from core
- Cache, net, and sync promoted to first-class modules
- Clear dependency layering across the ecosystem
🧩 New Modules
-
net
Low-level networking primitives and reachability utilities
(connectivity probing, network helpers). -
cache
Standalone HTTP cache engine with pluggable stores
(memory, LRU, file-based). -
sync
Offline-first synchronization engine
(WAL, outbox, retries, sync workers).
🧠 Core
- Removed embedded cache and sync implementations
- Core now focuses strictly on:
- HTTP server
- routing
- request / response lifecycle
- sessions & configuration
- Much cleaner public surface and faster compile times
🧱 Middleware
- Explicit dependency on cache (no implicit coupling)
- JSON and utils remain optional
- Scoped strictly to HTTP middleware pipeline
- Extensive smoke test coverage restored and stabilized
🌐 P2P
Integrated v0.5.1 (latest)
P2P v0.5.1 — Latest
- Removed dependency on
vix::core - Requires
vix::netonly sync,cache, andutilsare optional- Cleaner, modular build
- Internal refactors (discovery, node, router)
P2P v0.5.0
- Complete secure transport layer (Phase 6)
- Encrypted envelopes with AEAD
- Per-peer session keys derived from handshake
- Replay protection using nonce counters
- Decrypt-before-dispatch logic
- Handshake & control messages kept plaintext
- Foundation for secure WAL / Outbox sync (Phase 6.6)
P2P v0.4.0
- AEAD support (encrypt + authenticate)
- Extended envelope format (nonce + auth tag)
- Session key storage per peer
- Secure channels with nonce tracking
- NullCrypto implementation for development
P2P v0.3.0
- HTTP bootstrap service for peer discovery
- Bootstrap.hpp and BootstrapHttp.cpp
- Extended node lifecycle for bootstrap integration
- Manual test registry added
net
├─ cache
├─ sync
└─ p2p
└─ (optional sync integration)
core
└─ middleware
└─ cache (required)
This release establishes a clean, scalable foundation for:
- offline-first sync
- secure edge routing
- future P2P + WAL integration
- long-term maintainability
📐 Architectural State (v1.18.0)
v1.17.7 — Build & Run Reliability Improvements
🐛 Fixed
- CLI (run): Reuse the last successful build preset instead of defaulting to
dev-ninja, ensuring consistent behavior betweenvix buildandvix run. - CLI (run): Cleaned up script build error handling to provide clearer and
more actionable diagnostics. - CLI (run): Improved logging of environment declarations during script
execution for better debugging and transparency.
🛠 Improvements
- More predictable run flow after builds across presets.
- Smoother iterative workflows (build → run) with fewer surprises.
✅ Notes
No breaking changes. This release focuses on stability and correctness of the
CLI build/run pipeline.
v1.17.6 — CLI Stability & Toolchain Fixes
🐛 Fixed
-
CLI: Fixed
--linker lld|moldintegration.- Fast linker flags are now applied via
CMAKE_*_LINKER_FLAGS
(EXE,SHARED,MODULE) to ensure the selected linker is reliably
used at link time. - Removed incorrect propagation of linker flags through
CMAKE_C_FLAGS/CMAKE_CXX_FLAGS, preventing CMake
“unused variables” warnings and inconsistent behavior.
- Fast linker flags are now applied via
-
CLI: Improved
run/buildflow integration.- Unified preset and build-directory resolution across
RunDetail,RunFlow, andRunCommand. - Fixed edge cases that could lead to missing helper symbols
or mismatched build state during execution.
- Unified preset and build-directory resolution across
🛠 Internal
- Cleaner and more predictable linker configuration under CMake.
- Improved robustness of the CLI execution pipeline.
- No breaking changes.
✅ Notes
This release focuses on CLI correctness, toolchain reliability, and
a more stable execution model when using fast linkers and advanced build
configurations.
v1.17.5 — Performance & CLI Stability Release
🚀 Performance
- core: remove logger context and console synchronization from HTTP access logs, reducing contention under load
- utils: snapshot
spdloglogger instances to avoid global mutex contention and improve logging throughput
🖥️ CLI & Tooling
- cli(run): remove capture-based configure phase and switch to live execution for more predictable runtime behavior
- cli: clean and stabilize CMake output during configure while keeping build and run steps intact
- cli: remove dead helpers left after the build UX rewrite
🧹 Maintenance
- Internal cleanup across
cli,core, andutilsmodules - No breaking changes
✅ Notes
This release focuses on runtime performance, log scalability, and CLI robustness, especially under high load and iterative development workflows.
v1.17.4 — 2026-01-02
🔧 Fixed
-
CMake / Packaging
- Fixed
find_package(Vix)failures caused by missingBoost::filesystem/Boost::systemtargets. - Ensured all required dependencies are resolved before loading
VixTargets.cmake. - Removed deprecated
FindBoostbehavior in exported configs (CMP0167-safe). - Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
- Fixed
-
Core
- Removed
Boost::filesystemfromvix::corepublic link interface. - Restricted Boost dependency to
Boost::systemonly (Asio / Beast). - Updated HTTP server internals and headers accordingly.
- Prevented Boost symbols from leaking into consumer CMake targets.
- Removed
-
WebSocket
- Cleaned
vix::websocketexported link interface. - Fixed missing
Boost::systemtarget errors in downstream applications. - Improved module behavior with modern CMake dependency resolution.
- Cleaned
✨ Improved
- More robust umbrella CMake configuration for multi-module installs.
- Clearer separation between internal dependencies and public API surface.
- Better cross-platform developer experience when using:
find_package(Vix CONFIG REQUIRED)
v1.17.3
Added
-
vix build --target <triple>: cross-compilation support with auto-generated CMake toolchain.- Automatically generates
vix-toolchain.cmake - Passes
CMAKE_TOOLCHAIN_FILEandVIX_TARGET_TRIPLE - Cache-safe: reuses build directories when configuration is unchanged
- Compatible with
--preset,--static,--clean
- Automatically generates
-
Optional
--sysroot <path>support for cross builds- Enables proper discovery of target libraries (e.g. zlib)
- Designed for real cross environments (ARM, embedded, SBCs)
Improved
- Smarter build directory reuse via configuration signatures
- More explicit error messages when cross toolchains or sysroots are missing
v1.17.0
Added
vix installcommand to install/setup a Vix project or.vixpkgartifact.- Middleware integrated into the default Vix runtime (works out-of-the-box).
- A full set of middleware-focused examples:
- Auth (API key, JWT, RBAC)
- CORS (basic/strict)
- CSRF (strict + demos)
- Rate limiting (servers + pipeline demos)
- IP filtering (servers + pipeline demos)
- Body limit
- Compression
- HTTP cache
- ETag
- Security headers
- Static files
- JSON/form/multipart parsing
- Group builder examples
Changed
- Updated CMake configuration and
VixConfig.cmaketo expose the middleware stack correctly for downstrea...
v1.19.2
add deps command and fix registry dependency workflow
v1.19.1
Bump CLI: add publish command for the Vix registry workflow.
v1.19.0
CLI
- Git-based registry (sync, search, add)
- Project-scoped store (list/remove/gc)
- Improved UI with unified colors and helpers
Internal
- Utils updates
- Better developer experience for dependency management
v1.18.2
refactor
v1.18.1
- Fix: commit cmake/VixVendoredDeps.cmake (prevents install/configure failures)
- Fix: .gitignore no longer blocks required CMake files
- Bump: cli submodule (adds
--passthrough for CMake args)
v1.18.0
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]
v1.18.0 — Modular networking & secure P2P foundation
Highlights
- Major architectural cleanup and modular extraction
- P2P stack now fully decoupled from core
- Cache, net, and sync promoted to first-class modules
- Clear dependency layering across the ecosystem
🧩 New Modules
-
net
Low-level networking primitives and reachability utilities
(connectivity probing, network helpers). -
cache
Standalone HTTP cache engine with pluggable stores
(memory, LRU, file-based). -
sync
Offline-first synchronization engine
(WAL, outbox, retries, sync workers).
🧠 Core
- Removed embedded cache and sync implementations
- Core now focuses strictly on:
- HTTP server
- routing
- request / response lifecycle
- sessions & configuration
- Much cleaner public surface and faster compile times
🧱 Middleware
- Explicit dependency on cache (no implicit coupling)
- JSON and utils remain optional
- Scoped strictly to HTTP middleware pipeline
- Extensive smoke test coverage restored and stabilized
🌐 P2P
Integrated v0.5.1 (latest)
P2P v0.5.1 — Latest
- Removed dependency on
vix::core - Requires
vix::netonly sync,cache, andutilsare optional- Cleaner, modular build
- Internal refactors (discovery, node, router)
P2P v0.5.0
- Complete secure transport layer (Phase 6)
- Encrypted envelopes with AEAD
- Per-peer session keys derived from handshake
- Replay protection using nonce counters
- Decrypt-before-dispatch logic
- Handshake & control messages kept plaintext
- Foundation for secure WAL / Outbox sync (Phase 6.6)
P2P v0.4.0
- AEAD support (encrypt + authenticate)
- Extended envelope format (nonce + auth tag)
- Session key storage per peer
- Secure channels with nonce tracking
- NullCrypto implementation for development
P2P v0.3.0
- HTTP bootstrap service for peer discovery
- Bootstrap.hpp and BootstrapHttp.cpp
- Extended node lifecycle for bootstrap integration
- Manual test registry added
net
├─ cache
├─ sync
└─ p2p
└─ (optional sync integration)
core
└─ middleware
└─ cache (required)
This release establishes a clean, scalable foundation for:
- offline-first sync
- secure edge routing
- future P2P + WAL integration
- long-term maintainability
📐 Architectural State (v1.18.0)
v1.17.7 — Build & Run Reliability Improvements
🐛 Fixed
- CLI (run): Reuse the last successful build preset instead of defaulting to
dev-ninja, ensuring consistent behavior betweenvix buildandvix run. - CLI (run): Cleaned up script build error handling to provide clearer and
more actionable diagnostics. - CLI (run): Improved logging of environment declarations during script
execution for better debugging and transparency.
🛠 Improvements
- More predictable run flow after builds across presets.
- Smoother iterative workflows (build → run) with fewer surprises.
✅ Notes
No breaking changes. This release focuses on stability and correctness of the
CLI build/run pipeline.
v1.17.6 — CLI Stability & Toolchain Fixes
🐛 Fixed
-
CLI: Fixed
--linker lld|moldintegration.- Fast linker flags are now applied via
CMAKE_*_LINKER_FLAGS
(EXE,SHARED,MODULE) to ensure the selected linker is reliably
used at link time. - Removed incorrect propagation of linker flags through
CMAKE_C_FLAGS/CMAKE_CXX_FLAGS, preventing CMake
“unused variables” warnings and inconsistent behavior.
- Fast linker flags are now applied via
-
CLI: Improved
run/buildflow integration.- Unified preset and build-directory resolution across
RunDetail,RunFlow, andRunCommand. - Fixed edge cases that could lead to missing helper symbols
or mismatched build state during execution.
- Unified preset and build-directory resolution across
🛠 Internal
- Cleaner and more predictable linker configuration under CMake.
- Improved robustness of the CLI execution pipeline.
- No breaking changes.
✅ Notes
This release focuses on CLI correctness, toolchain reliability, and
a more stable execution model when using fast linkers and advanced build
configurations.
v1.17.5 — Performance & CLI Stability Release
🚀 Performance
- core: remove logger context and console synchronization from HTTP access logs, reducing contention under load
- utils: snapshot
spdloglogger instances to avoid global mutex contention and improve logging throughput
🖥️ CLI & Tooling
- cli(run): remove capture-based configure phase and switch to live execution for more predictable runtime behavior
- cli: clean and stabilize CMake output during configure while keeping build and run steps intact
- cli: remove dead helpers left after the build UX rewrite
🧹 Maintenance
- Internal cleanup across
cli,core, andutilsmodules - No breaking changes
✅ Notes
This release focuses on runtime performance, log scalability, and CLI robustness, especially under high load and iterative development workflows.
v1.17.4 — 2026-01-02
🔧 Fixed
-
CMake / Packaging
- Fixed
find_package(Vix)failures caused by missingBoost::filesystem/Boost::systemtargets. - Ensured all required dependencies are resolved before loading
VixTargets.cmake. - Removed deprecated
FindBoostbehavior in exported configs (CMP0167-safe). - Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
- Fixed
-
Core
- Removed
Boost::filesystemfromvix::corepublic link interface. - Restricted Boost dependency to
Boost::systemonly (Asio / Beast). - Updated HTTP server internals and headers accordingly.
- Prevented Boost symbols from leaking into consumer CMake targets.
- Removed
-
WebSocket
- Cleaned
vix::websocketexported link interface. - Fixed missing
Boost::systemtarget errors in downstream applications. - Improved module behavior with modern CMake dependency resolution.
- Cleaned
✨ Improved
- More robust umbrella CMake configuration for multi-module installs.
- Clearer separation between internal dependencies and public API surface.
- Better cross-platform developer experience when using:
find_package(Vix CONFIG REQUIRED)
v1.17.3
Added
-
vix build --target <triple>: cross-compilation support with auto-generated CMake toolchain.- Automatically generates
vix-toolchain.cmake - Passes
CMAKE_TOOLCHAIN_FILEandVIX_TARGET_TRIPLE - Cache-safe: reuses build directories when configuration is unchanged
- Compatible with
--preset,--static,--clean
- Automatically generates
-
Optional
--sysroot <path>support for cross builds- Enables proper discovery of target libraries (e.g. zlib)
- Designed for real cross environments (ARM, embedded, SBCs)
Improved
- Smarter build directory reuse via configuration signatures
- More explicit error messages when cross toolchains or sysroots are missing
v1.17.0
Added
vix installcommand to install/setup a Vix project or.vixpkgartifact.- Middleware integrated into the default Vix runtime (works out-of-the-box).
- A full set of middleware-focused examples:
- Auth (API key, JWT, RBAC)
- CORS (basic/strict)
- CSRF (strict + demos)
- Rate limiting (servers + pipeline demos)
- IP filtering (servers + pipeline demos)
- Body limit
- Compression
- HTTP cache
- ETag
- Security headers
- Static files
- JSON/form/multipart parsing
- Group builder examples
Changed
- Updated CMake configuration and
VixConfig.cmaketo expose the middleware stack correctly for downstream projects. - Updated README/docs to reflect the new install workflow and middleware usage.
Notes
- No breaking changes expected.
v1.16.1 — REPL Isolation & Stability
✨ Improvements
- Fully isolated the REPL from CLI commands (
build,run,check,tests,verify) - Disabled execution of CLI commands and flags inside the REPL
- Removed CLI flags from REPL autocompletion to avoid misleading suggestions
- Disabled
help <command>and CLI command listing inside the REPL - Improved REPL UX consistency with a sandboxed, Bun/Deno-like experience
🧠 Behavior Changes
- The REPL is now a pure interactive sandbox for:
- math expressions
- variables
- JSON literals
print / printlnVixAPI (cd,cwd,env,args,exit, etc.)
- All project-related CLI commands must now be executed outside the REPL
🛠 Internal
- Removed remaining runtime dependencies between the REPL and the CLI dispatcher
- Simplified REPL command completion logic
1.16.0 — 2025-01-XX
🚀 Highlights
-
REPL is now the default mode
Runningvixstarts the interactive shell automatically
(no morevix repl). -
Modern runtime experience
Behavior aligned with Python, Node.js, and Deno.
✨ Added
- Default interactive REPL when running
vix - Dedicated
README_REPL.mdwith:- Math expressions
- Variables
- JSON usage
print/println- Built-in
VixAPI examples
- Improved CLI documentation (
docs/modules/cli.md)
🧠 Improved
- REPL argument evaluation:
- Correct handling of string literals
- Math expressions with variables
- Mixed arguments (
println("x =", x+1))
- REPL execution flow stability
- Error messages clarity in interactive mode
- Overall CLI UX consistency
🧹 Changed
- Removed
vix replas a required entry point - REPL is now the primary interaction mode
- CLI documentation updated to reflect new behavior
🔧 Internal
- REPL flow refactoring and cleanup
- Better separation between CLI dispatcher and REPL runtime
- Documentation structure improvements
⚠️ Notes
- JSON literals must be **strictly valid ...
v1.17.7
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]
v1.17.7 — Build & Run Reliability Improvements
🐛 Fixed
- CLI (run): Reuse the last successful build preset instead of defaulting to
dev-ninja, ensuring consistent behavior betweenvix buildandvix run. - CLI (run): Cleaned up script build error handling to provide clearer and
more actionable diagnostics. - CLI (run): Improved logging of environment declarations during script
execution for better debugging and transparency.
🛠 Improvements
- More predictable run flow after builds across presets.
- Smoother iterative workflows (build → run) with fewer surprises.
✅ Notes
No breaking changes. This release focuses on stability and correctness of the
CLI build/run pipeline.
v1.17.6 — CLI Stability & Toolchain Fixes
🐛 Fixed
-
CLI: Fixed
--linker lld|moldintegration.- Fast linker flags are now applied via
CMAKE_*_LINKER_FLAGS
(EXE,SHARED,MODULE) to ensure the selected linker is reliably
used at link time. - Removed incorrect propagation of linker flags through
CMAKE_C_FLAGS/CMAKE_CXX_FLAGS, preventing CMake
“unused variables” warnings and inconsistent behavior.
- Fast linker flags are now applied via
-
CLI: Improved
run/buildflow integration.- Unified preset and build-directory resolution across
RunDetail,RunFlow, andRunCommand. - Fixed edge cases that could lead to missing helper symbols
or mismatched build state during execution.
- Unified preset and build-directory resolution across
🛠 Internal
- Cleaner and more predictable linker configuration under CMake.
- Improved robustness of the CLI execution pipeline.
- No breaking changes.
✅ Notes
This release focuses on CLI correctness, toolchain reliability, and
a more stable execution model when using fast linkers and advanced build
configurations.
v1.17.5 — Performance & CLI Stability Release
🚀 Performance
- core: remove logger context and console synchronization from HTTP access logs, reducing contention under load
- utils: snapshot
spdloglogger instances to avoid global mutex contention and improve logging throughput
🖥️ CLI & Tooling
- cli(run): remove capture-based configure phase and switch to live execution for more predictable runtime behavior
- cli: clean and stabilize CMake output during configure while keeping build and run steps intact
- cli: remove dead helpers left after the build UX rewrite
🧹 Maintenance
- Internal cleanup across
cli,core, andutilsmodules - No breaking changes
✅ Notes
This release focuses on runtime performance, log scalability, and CLI robustness, especially under high load and iterative development workflows.
v1.17.4 — 2026-01-02
🔧 Fixed
-
CMake / Packaging
- Fixed
find_package(Vix)failures caused by missingBoost::filesystem/Boost::systemtargets. - Ensured all required dependencies are resolved before loading
VixTargets.cmake. - Removed deprecated
FindBoostbehavior in exported configs (CMP0167-safe). - Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
- Fixed
-
Core
- Removed
Boost::filesystemfromvix::corepublic link interface. - Restricted Boost dependency to
Boost::systemonly (Asio / Beast). - Updated HTTP server internals and headers accordingly.
- Prevented Boost symbols from leaking into consumer CMake targets.
- Removed
-
WebSocket
- Cleaned
vix::websocketexported link interface. - Fixed missing
Boost::systemtarget errors in downstream applications. - Improved module behavior with modern CMake dependency resolution.
- Cleaned
✨ Improved
- More robust umbrella CMake configuration for multi-module installs.
- Clearer separation between internal dependencies and public API surface.
- Better cross-platform developer experience when using:
find_package(Vix CONFIG REQUIRED)
v1.17.3
Added
-
vix build --target <triple>: cross-compilation support with auto-generated CMake toolchain.- Automatically generates
vix-toolchain.cmake - Passes
CMAKE_TOOLCHAIN_FILEandVIX_TARGET_TRIPLE - Cache-safe: reuses build directories when configuration is unchanged
- Compatible with
--preset,--static,--clean
- Automatically generates
-
Optional
--sysroot <path>support for cross builds- Enables proper discovery of target libraries (e.g. zlib)
- Designed for real cross environments (ARM, embedded, SBCs)
Improved
- Smarter build directory reuse via configuration signatures
- More explicit error messages when cross toolchains or sysroots are missing
v1.17.0
Added
vix installcommand to install/setup a Vix project or.vixpkgartifact.- Middleware integrated into the default Vix runtime (works out-of-the-box).
- A full set of middleware-focused examples:
- Auth (API key, JWT, RBAC)
- CORS (basic/strict)
- CSRF (strict + demos)
- Rate limiting (servers + pipeline demos)
- IP filtering (servers + pipeline demos)
- Body limit
- Compression
- HTTP cache
- ETag
- Security headers
- Static files
- JSON/form/multipart parsing
- Group builder examples
Changed
- Updated CMake configuration and
VixConfig.cmaketo expose the middleware stack correctly for downstream projects. - Updated README/docs to reflect the new install workflow and middleware usage.
Notes
- No breaking changes expected.
v1.16.1 — REPL Isolation & Stability
✨ Improvements
- Fully isolated the REPL from CLI commands (
build,run,check,tests,verify) - Disabled execution of CLI commands and flags inside the REPL
- Removed CLI flags from REPL autocompletion to avoid misleading suggestions
- Disabled
help <command>and CLI command listing inside the REPL - Improved REPL UX consistency with a sandboxed, Bun/Deno-like experience
🧠 Behavior Changes
- The REPL is now a pure interactive sandbox for:
- math expressions
- variables
- JSON literals
print / printlnVixAPI (cd,cwd,env,args,exit, etc.)
- All project-related CLI commands must now be executed outside the REPL
🛠 Internal
- Removed remaining runtime dependencies between the REPL and the CLI dispatcher
- Simplified REPL command completion logic
1.16.0 — 2025-01-XX
🚀 Highlights
-
REPL is now the default mode
Runningvixstarts the interactive shell automatically
(no morevix repl). -
Modern runtime experience
Behavior aligned with Python, Node.js, and Deno.
✨ Added
- Default interactive REPL when running
vix - Dedicated
README_REPL.mdwith:- Math expressions
- Variables
- JSON usage
print/println- Built-in
VixAPI examples
- Improved CLI documentation (
docs/modules/cli.md)
🧠 Improved
- REPL argument evaluation:
- Correct handling of string literals
- Math expressions with variables
- Mixed arguments (
println("x =", x+1))
- REPL execution flow stability
- Error messages clarity in interactive mode
- Overall CLI UX consistency
🧹 Changed
- Removed
vix replas a required entry point - REPL is now the primary interaction mode
- CLI documentation updated to reflect new behavior
🔧 Internal
- REPL flow refactoring and cleanup
- Better separation between CLI dispatcher and REPL runtime
- Documentation structure improvements
⚠️ Notes
- JSON literals must be strictly valid JSON
({"key":"value"}, not{key, value})
[1.15.0] - 2025-12-20
Added
Changed
Removed
v1.15.0 — 2025-12-20
Added
vix check: validate a project or compile a single.cppfile without execution.vix tests: run project tests (alias ofvix check --tests).vix verify: verify packaged artifacts and signatures.- CLI reference documentation (
docs/vix-cli-help.md). - Pull Request template to standardize contributions.
Changed
- Improved global CLI help output formatting and readability.
- Updated README with clearer CLI usage and script mode examples.
- Updated security testing documentation with realistic, tool-based practices.
- Improved contributing guidelines and code of conduct.
Removed
- Deprecated
SECURITY.mdin favor of a more accurate security testing guide.
Notes
- This release significantly improves CLI usability, testing workflow, and project governance.
- Recommended upgrade for all users relying on the Vix CLI.
[1.14.7] - 2025-12-19
Added
Changed
Removed
v1.14.7 — CLI Packaging Stability Update
Fixed
- Fixed
vix packpotentially blocking when minisign required interactive input. - Prevented unintended blocking behavior when signing is auto-detected.
Added
- Integrated new CLI signing modes from vix-cli v1.9.2:
--sign=auto(default, non-blocking)--sign=never--sign=required(fail-fast, explicit)
Improved
- More predictable and professional packaging workflow.
- Clear separation between optional and mandatory cryptographic signing.
- Improved developer experience for CI/CD and non-interactive environments.
[1.14.6] - 2025-12-19
Added
Changed
Removed
1.14.6 — 2025-XX-XX
CLI
- Updated
modules/clito the latest version. - Improved
vix packuser experience:- Minisign password prompt is now visible when
--verboseis enabled. - Prevents silent blocking during package signing.
- Minisign password prompt is now visible when
- Added
vix verifycommand:- Manifest v2 validation.
- Payload digest verification.
- Optional minisign signature verification.
- Auto-detection of
dist/<name>@<version>packages.
- Improved CLI help output:
- Clearer command grouping.
- Better descriptions for
packandverify. - More pra...