Skip to content

Releases: vixcpp/vix

v1.21.0

24 Jan 15:47
8088f23

Choose a tag to compare

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::db is the low-level core layer, vix::orm remains 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::db as a core module and decoupled ORM tooling/drivers accordingly.
  • Synced submodules after DB/ORM compatibility fixes.

Upgrade notes

  • If you enable ORM, it automatically implies DB.
  • 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 debug or trace
  • 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.log for post-mortem diagnostics
  • Let ErrorHandler display 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 deps command 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 : deps command
  • 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::net only
  • sync, cache, and utils are 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 between vix build and vix 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|mold integration.

    • 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.
  • CLI: Improved run / build flow integration.

    • Unified preset and build-directory resolution across
      RunDetail, RunFlow, and RunCommand.
    • Fixed edge cases that could lead to missing helper symbols
      or mismatched build state during execution.

🛠 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 spdlog logger 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, and utils modules
  • 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 missing Boost::filesystem / Boost::system targets.
    • Ensu...
Read more

v1.20.1

21 Jan 18:50
6f15f3d

Choose a tag to compare

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 debug or trace
  • 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.log for post-mortem diagnostics
  • Let ErrorHandler display 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 deps command 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 : deps command
  • 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::net only
  • sync, cache, and utils are 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 between vix build and vix 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|mold integration.

    • 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.
  • CLI: Improved run / build flow integration.

    • Unified preset and build-directory resolution across
      RunDetail, RunFlow, and RunCommand.
    • Fixed edge cases that could lead to missing helper symbols
      or mismatched build state during execution.

🛠 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 spdlog logger 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, and utils modules
  • 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 missing Boost::filesystem / Boost::system targets.
    • Ensured all required dependencies are resolved before loading VixTargets.cmake.
    • Removed deprecated FindBoost behavior in exported configs (CMP0167-safe).
    • Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
  • Core

    • Removed Boost::filesystem from vix::core public link interface.
    • Restricted Boost dependency to Boost::system only (Asio / Beast).
    • Updated HTTP server internals and headers accordingly.
    • Prevented Boost symbols from leaking into consumer CMake targets.
  • WebSocket

    • Cleaned vix::websocket exported link interface.
    • Fixed missing Boost::system target errors in downstream applications.
    • Improved module behavior with modern CMake dependency resolution.

✨ 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_FILE and VIX_TARGET_TRIPLE
      ...
Read more

v1.20.0

21 Jan 11:18
98d0693

Choose a tag to compare

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 deps command 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 : deps command
  • 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::net only
  • sync, cache, and utils are 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 between vix build and vix 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|mold integration.

    • 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.
  • CLI: Improved run / build flow integration.

    • Unified preset and build-directory resolution across
      RunDetail, RunFlow, and RunCommand.
    • Fixed edge cases that could lead to missing helper symbols
      or mismatched build state during execution.

🛠 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 spdlog logger 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, and utils modules
  • 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 missing Boost::filesystem / Boost::system targets.
    • Ensured all required dependencies are resolved before loading VixTargets.cmake.
    • Removed deprecated FindBoost behavior in exported configs (CMP0167-safe).
    • Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
  • Core

    • Removed Boost::filesystem from vix::core public link interface.
    • Restricted Boost dependency to Boost::system only (Asio / Beast).
    • Updated HTTP server internals and headers accordingly.
    • Prevented Boost symbols from leaking into consumer CMake targets.
  • WebSocket

    • Cleaned vix::websocket exported link interface.
    • Fixed missing Boost::system target errors in downstream applications.
    • Improved module behavior with modern CMake dependency resolution.

✨ 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_FILE and VIX_TARGET_TRIPLE
    • Cache-safe: reuses build directories when configuration is unchanged
    • Compatible with --preset, --static, --clean
  • 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 install command to install/setup a Vix project or .vixpkg artifact.
  • 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.cmake to expose the middleware stack correctly for downstrea...
Read more

v1.19.2

20 Jan 16:42
95ddc48

Choose a tag to compare

add deps command and fix registry dependency workflow

v1.19.1

20 Jan 16:31
9e14a89

Choose a tag to compare

Bump CLI: add publish command for the Vix registry workflow.

v1.19.0

19 Jan 19:33
e3f32da

Choose a tag to compare

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

18 Jan 04:35
a591012

Choose a tag to compare

refactor

v1.18.1

13 Jan 11:51
db0f181

Choose a tag to compare

  • 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

12 Jan 18:39
fc866bc

Choose a tag to compare

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::net only
  • sync, cache, and utils are 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 between vix build and vix 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|mold integration.

    • 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.
  • CLI: Improved run / build flow integration.

    • Unified preset and build-directory resolution across
      RunDetail, RunFlow, and RunCommand.
    • Fixed edge cases that could lead to missing helper symbols
      or mismatched build state during execution.

🛠 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 spdlog logger 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, and utils modules
  • 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 missing Boost::filesystem / Boost::system targets.
    • Ensured all required dependencies are resolved before loading VixTargets.cmake.
    • Removed deprecated FindBoost behavior in exported configs (CMP0167-safe).
    • Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
  • Core

    • Removed Boost::filesystem from vix::core public link interface.
    • Restricted Boost dependency to Boost::system only (Asio / Beast).
    • Updated HTTP server internals and headers accordingly.
    • Prevented Boost symbols from leaking into consumer CMake targets.
  • WebSocket

    • Cleaned vix::websocket exported link interface.
    • Fixed missing Boost::system target errors in downstream applications.
    • Improved module behavior with modern CMake dependency resolution.

✨ 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_FILE and VIX_TARGET_TRIPLE
    • Cache-safe: reuses build directories when configuration is unchanged
    • Compatible with --preset, --static, --clean
  • 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 install command to install/setup a Vix project or .vixpkg artifact.
  • 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.cmake to 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 / println
    • Vix API (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
    Running vix starts the interactive shell automatically
    (no more vix repl).

  • Modern runtime experience
    Behavior aligned with Python, Node.js, and Deno.


✨ Added

  • Default interactive REPL when running vix
  • Dedicated README_REPL.md with:
    • Math expressions
    • Variables
    • JSON usage
    • print / println
    • Built-in Vix API 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 repl as 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 ...
Read more

v1.17.7

06 Jan 16:27
bac0eed

Choose a tag to compare

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 between vix build and vix 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|mold integration.

    • 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.
  • CLI: Improved run / build flow integration.

    • Unified preset and build-directory resolution across
      RunDetail, RunFlow, and RunCommand.
    • Fixed edge cases that could lead to missing helper symbols
      or mismatched build state during execution.

🛠 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 spdlog logger 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, and utils modules
  • 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 missing Boost::filesystem / Boost::system targets.
    • Ensured all required dependencies are resolved before loading VixTargets.cmake.
    • Removed deprecated FindBoost behavior in exported configs (CMP0167-safe).
    • Stabilized consumer builds on macOS (AppleClang + Homebrew Boost) and Linux.
  • Core

    • Removed Boost::filesystem from vix::core public link interface.
    • Restricted Boost dependency to Boost::system only (Asio / Beast).
    • Updated HTTP server internals and headers accordingly.
    • Prevented Boost symbols from leaking into consumer CMake targets.
  • WebSocket

    • Cleaned vix::websocket exported link interface.
    • Fixed missing Boost::system target errors in downstream applications.
    • Improved module behavior with modern CMake dependency resolution.

✨ 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_FILE and VIX_TARGET_TRIPLE
    • Cache-safe: reuses build directories when configuration is unchanged
    • Compatible with --preset, --static, --clean
  • 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 install command to install/setup a Vix project or .vixpkg artifact.
  • 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.cmake to 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 / println
    • Vix API (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
    Running vix starts the interactive shell automatically
    (no more vix repl).

  • Modern runtime experience
    Behavior aligned with Python, Node.js, and Deno.


✨ Added

  • Default interactive REPL when running vix
  • Dedicated README_REPL.md with:
    • Math expressions
    • Variables
    • JSON usage
    • print / println
    • Built-in Vix API 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 repl as 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 .cpp file without execution.
  • vix tests: run project tests (alias of vix 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.md in 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 pack potentially 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/cli to the latest version.
  • Improved vix pack user experience:
    • Minisign password prompt is now visible when --verbose is enabled.
    • Prevents silent blocking during package signing.
  • Added vix verify command:
    • 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 pack and verify.
    • More pra...
Read more