Skip to content

Releases: vixcpp/vix

v1.22.14

27 Jan 17:56
b02ca19

Choose a tag to compare

v1.22.14 Pre-release
Pre-release

Changes

  • Fix umbrella CMake config and installable package config (VixConfig.cmake).

v1.22.5

27 Jan 13:46
ddf8fe4

Choose a tag to compare

v1.22.5 Pre-release
Pre-release

failed

v1.22.4

27 Jan 13:29
5479725

Choose a tag to compare

v1.22.4 Pre-release
Pre-release

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_only on 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_asio interface target
    • Stabilize P2P build by fixing Asio integration at umbrella level

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
  • debug OFF by default
  • log == info
  • warn / errorstderr
  • log / info / debugstdout

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_LEVEL
    • NO_COLOR
    • VIX_COLOR
  • Environment is read once (startup / first use)
  • Behavior is fixed afterward

Minimal anti-spam protection

  • Prevents accidental performance collapse from excessive log / info usage
  • warn and error are never suppressed

📖 Documentation

New documentation: Vix Console

  • Clearly defines:
    • Scope
    • Guarantees
    • Constraints
    • Non-goals

Explicit separation

  • vix::console → runtime / developer output
  • vix::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 module
  • docs(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::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

  • Explici...
Read more

v1.22.3

27 Jan 13:06
5f75027

Choose a tag to compare

v1.22.3 Pre-release
Pre-release

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_asio interface target
    • Stabilize P2P build by fixing Asio integration at umbrella level

Notes

  • No API changes
  • Infra / build-system only
  • Safe to squash merge

v1.22.1

27 Jan 11:47
8f75752

Choose a tag to compare

v1.22.1 Pre-release
Pre-release

unify core modules, release workflow, and security layout

v1.22.0

25 Jan 13:47
9270781

Choose a tag to compare

Vix Console contract and integrate core console module

v1.21.1

25 Jan 11:30
891d29f

Choose a tag to compare

(cleaner sanitizer output, unified timeout logic, refined code frames)

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