Releases: vixcpp/vix
v1.22.14
Changes
- Fix umbrella CMake config and installable package config (VixConfig.cmake).
v1.22.5
failed
v1.22.4
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]
Changelog
v1.22.4
Fixed
- Fixed release and CI failures caused by missing
spdlog::spdlog_header_onlyon clean environments. - Added a robust FetchContent fallback for header-only spdlog to ensure reproducible builds.
- Stabilized cross-compilation and GitHub Actions release workflows.
Build
- Utils module now auto-fetches spdlog in header-only mode when not provided by the system.
- Preserved ABI safety by enforcing header-only logging dependencies.
Notes
- No runtime behavior changes.
- No API breakage.
- This release only improves build reliability and release stability.
v1.22.3 — 2026-01-27
Fixed
- cmake(umbrella): fix Asio detection and fallback handling
- Ensure standalone Asio is correctly detected from
third_party/asio - Prevent hard failure when Asio is missing on CI runners
- Centralize Asio include path via
vix::thirdparty_asiointerface target - Stabilize P2P build by fixing Asio integration at umbrella level
- Ensure standalone Asio is correctly detected from
v1.22.2 — 2026-01-27
Fixed
-
p2p: fix Asio integration
- Asio is now strictly provided by the umbrella build
- Remove implicit
<asio.hpp>includes and non-deterministic paths - Reliable builds in local, CI, and downstream projects
-
core: fix header guard in
Request.hpp- Prevent collisions and undefined behavior in modular builds
Build
- Clarify umbrella vs standalone responsibilities
- Deterministic and reproducible CMake configuration
v1.22.1 — 2026-01-25
Changed
- core: unify core modules and clarify responsibilities
- build: harmonize CMake and package configuration
- modules: sync cache, cli, db, net, p2p, and sync
Added
- GitHub release workflow
- Security layout structure
- Advanced middleware routing example
Docs
- Clarify scope and non-goals
- Document Vix Console contract and logging separation
v1.22.0 — Runtime Console & DX Stabilization
Release focus: developer experience, runtime safety, and clear separation between dev console and production logging.
✨ New
Vix Console (core)
Introduces a Node.js–inspired, zero-config runtime console available directly via:
#include <vix/console.hpp>
vix::console.log("Hello");Designed for developer-facing output with strict runtime guarantees.
🧠 Design & Runtime Guarantees
Zero configuration by default
- Console works immediately after
#include - No init calls
- No setup required
Safe defaults
- Default level:
info debugOFF by defaultlog == infowarn/error→stderrlog/info/debug→stdout
Performance contract
- If a level is filtered, the call is near-zero cost
- No message construction
- No allocation
- No lock
- No I/O
Thread-safe, atomic output
- Each console call emits a single atomic line
Stable environment configuration
- Supports:
VIX_CONSOLE_LEVELNO_COLORVIX_COLOR
- Environment is read once (startup / first use)
- Behavior is fixed afterward
Minimal anti-spam protection
- Prevents accidental performance collapse from excessive
log/infousage warnanderrorare never suppressed
📖 Documentation
New documentation: Vix Console
- Clearly defines:
- Scope
- Guarantees
- Constraints
- Non-goals
Explicit separation
vix::console→ runtime / developer outputvix::utils::Logger→ production logging, structured output
Clarified non-goals
- No
console.table - No
console.group - No
console.time - No
console.count
Advanced debugging and observability belong to vix::utils::Logger.
🔒 Philosophy Clarification
- Vix Console is intentionally not a production logger
- Borrows Node.js developer trust
- Enforces C++ runtime discipline
- Designed to be safe even if developers do not read documentation
🔗 Commits
docs(core): document Vix Console contract and integrate core console moduledocs(console): clarify scope, non-goals, and logger separation
v1.21.1
- chore(cli): bump CLI submodule to v1.19.12 (cleaner sanitizer output, unified timeout logic, refined code frames)
- docs/examples: add
examples/vix_routes_showcase.cpp(HTTP routes + query params showcase)
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
- Explici...
v1.22.3
v1.22.3 — 2026-01-27
Fixed
- cmake(umbrella): fix Asio detection and fallback handling
- Ensure standalone Asio is correctly detected from
third_party/asio - Prevent hard failure when Asio is missing on CI runners
- Centralize Asio include path via
vix::thirdparty_asiointerface target - Stabilize P2P build by fixing Asio integration at umbrella level
- Ensure standalone Asio is correctly detected from
Notes
- No API changes
- Infra / build-system only
- Safe to squash merge
v1.22.1
unify core modules, release workflow, and security layout
v1.22.0
v1.21.1
(cleaner sanitizer output, unified timeout logic, refined code frames)
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...