Skip to content

Releases: vixcpp/vix

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

v1.17.6

06 Jan 00:18
8dc7dd9

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-1...

Read more

v1.17.5

04 Jan 09:21
17e24b0

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • ...
Read more

v1.17.4

02 Jan 15:37
494e317

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • Fixed ORM migrator build after driver abstraction refactor.
  • Replaced deprecated MySQL connection APIs with the factory-based Connection interface.
  • Fixed CI failures caused by abstract Connection instantiation.
  • Ensured the migrator compiles correctly when database drivers are disabled.

[1.14.3] - 2025-12-17

Added

Changed

Removed

v1.14.3 — 2025-12-17

Fixed

  • Fixed JSON umbrella integration: <vix.hpp> now reliably exposes vix::json builders (o, a, kv).
  • Fixed missing OrderedJson type in core RequestHandler.
  • Fixed compilation errors in examples relying on implicit JSON availability.
  • Fixed vix_json CMake include paths for both build-tree and install-tree usage.

Internal

  • Improved Core ↔ JSON module boundary consistency.
  • Stabilized umbrella build (vix::vix) dependency propagation.

Compatibil...

Read more

v1.17.3

31 Dec 10:30
884114b

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • Fixed ORM migrator build after driver abstraction refactor.
  • Replaced deprecated MySQL connection APIs with the factory-based Connection interface.
  • Fixed CI failures caused by abstract Connection instantiation.
  • Ensured the migrator compiles correctly when database drivers are disabled.

[1.14.3] - 2025-12-17

Added

Changed

Removed

v1.14.3 — 2025-12-17

Fixed

  • Fixed JSON umbrella integration: <vix.hpp> now reliably exposes vix::json builders (o, a, kv).
  • Fixed missing OrderedJson type in core RequestHandler.
  • Fixed compilation errors in examples relying on implicit JSON availability.
  • Fixed vix_json CMake include paths for both build-tree and install-tree usage.

Internal

  • Improved Core ↔ JSON module boundary consistency.
  • Stabilized umbrella build (vix::vix) dependency propagation.

Compatibility

  • No breaking API changes.
  • Existing applications continue to work without modification.

[1.14.2] - 2025-12-17

Added

Changed

Removed

v1.14.2 — 2025-12-17

Fixed

  • core/http: fixed RequestHandler build failures by using the local OrderedJson alias and preventing name lookup from resolving to POSIX ::send() (now uses this->send() internally).
  • json: improved unified include header vix/json.hpp and ensured OrderedJson exposure is consistent across the JSON module.

[1.14.1] - 2025-12-17

Added

Changed

Removed

v1.14.1 — Stability, Cache & Build Hygiene Release

Release date: 2025-12-17

✨ Highlights

  • Finalized HTTP GET cache system across core and middleware.
  • Integrated cache as a first-class middleware in the request pipeline.
  • Added comprehensive cache and middleware tests.
  • Achieved strict warning-free builds (-Weffc++) across all modules.

🧱 Core & Middleware

  • Completed HTTP cache implementation (Memory, File, LRU stores).
  • Introduced cache utilities (CacheKey, HTTP header helpers).
  • Clean integration with HTTPServer, Router, and `S...
Read more

v1.17.2

29 Dec 12:44
dc7e629

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • Fixed ORM migrator build after driver abstraction refactor.
  • Replaced deprecated MySQL connection APIs with the factory-based Connection interface.
  • Fixed CI failures caused by abstract Connection instantiation.
  • Ensured the migrator compiles correctly when database drivers are disabled.

[1.14.3] - 2025-12-17

Added

Changed

Removed

v1.14.3 — 2025-12-17

Fixed

  • Fixed JSON umbrella integration: <vix.hpp> now reliably exposes vix::json builders (o, a, kv).
  • Fixed missing OrderedJson type in core RequestHandler.
  • Fixed compilation errors in examples relying on implicit JSON availability.
  • Fixed vix_json CMake include paths for both build-tree and install-tree usage.

Internal

  • Improved Core ↔ JSON module boundary consistency.
  • Stabilized umbrella build (vix::vix) dependency propagation.

Compatibility

  • No breaking API changes.
  • Existing applications continue to work without modification.

[1.14.2] - 2025-12-17

Added

Changed

Removed

v1.14.2 — 2025-12-17

Fixed

  • core/http: fixed RequestHandler build failures by using the local OrderedJson alias and preventing name lookup from resolving to POSIX ::send() (now uses this->send() internally).
  • json: improved unified include header vix/json.hpp and ensured OrderedJson exposure is consistent across the JSON module.

[1.14.1] - 2025-12-17

Added

Changed

Removed

v1.14.1 — Stability, Cache & Build Hygiene Release

Release date: 2025-12-17

✨ Highlights

  • Finalized HTTP GET cache system across core and middleware.
  • Integrated cache as a first-class middleware in the request pipeline.
  • Added comprehensive cache and middleware tests.
  • Achieved strict warning-free builds (-Weffc++) across all modules.

🧱 Core & Middleware

  • Completed HTTP cache implementation (Memory, File, LRU stores).
  • Introduced cache utilities (CacheKey, HTTP header helpers).
  • Clean integration with HTTPServer, Router, and Session.
  • Added HTTP cache middleware for transparent GET caching.
  • Added periodic middleware support for timed/background tasks.
  • Middleware pipeline refined and stabilized.

🛠️ Build & Quality

  • Enforced strict warning hygiene with -Weffc++.
  • Fixed:
    • sign-conversion warnings
    • ignored return values (chdir, setenv, etc.)
    • [[nodiscard]] API misuse in examples
  • Isolated GCC/libstdc++ false positives (std::regex) without masking project warnings.
  • Improved and unified CMake configuration across all modules.

🧪 Tests

  • Added and stabilized HTTP cache smoke tests.
  • Added middleware-level tests validating cache behavior.
  • Improved t...
Read more

v1.17.1

26 Dec 12:45
74079c6

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • Fixed ORM migrator build after driver abstraction refactor.
  • Replaced deprecated MySQL connection APIs with the factory-based Connection interface.
  • Fixed CI failures caused by abstract Connection instantiation.
  • Ensured the migrator compiles correctly when database drivers are disabled.

[1.14.3] - 2025-12-17

Added

Changed

Removed

v1.14.3 — 2025-12-17

Fixed

  • Fixed JSON umbrella integration: <vix.hpp> now reliably exposes vix::json builders (o, a, kv).
  • Fixed missing OrderedJson type in core RequestHandler.
  • Fixed compilation errors in examples relying on implicit JSON availability.
  • Fixed vix_json CMake include paths for both build-tree and install-tree usage.

Internal

  • Improved Core ↔ JSON module boundary consistency.
  • Stabilized umbrella build (vix::vix) dependency propagation.

Compatibility

  • No breaking API changes.
  • Existing applications continue to work without modification.

[1.14.2] - 2025-12-17

Added

Changed

Removed

v1.14.2 — 2025-12-17

Fixed

  • core/http: fixed RequestHandler build failures by using the local OrderedJson alias and preventing name lookup from resolving to POSIX ::send() (now uses this->send() internally).
  • json: improved unified include header vix/json.hpp and ensured OrderedJson exposure is consistent across the JSON module.

[1.14.1] - 2025-12-17

Added

Changed

Removed

v1.14.1 — Stability, Cache & Build Hygiene Release

Release date: 2025-12-17

✨ Highlights

  • Finalized HTTP GET cache system across core and middleware.
  • Integrated cache as a first-class middleware in the request pipeline.
  • Added comprehensive cache and middleware tests.
  • Achieved strict warning-free builds (-Weffc++) across all modules.

🧱 Core & Middleware

  • Completed HTTP cache implementation (Memory, File, LRU stores).
  • Introduced cache utilities (CacheKey, HTTP header helpers).
  • Clean integration with HTTPServer, Router, and Session.
  • Added HTTP cache middleware for transparent GET caching.
  • Added periodic middleware support for timed/background tasks.
  • Middleware pipeline refined and stabilized.

🛠️ Build & Quality

  • Enforced strict warning hygiene with -Weffc++.
  • Fixed:
    • sign-conversion warnings
    • ignored return values (chdir, setenv, etc.)
    • [[nodiscard]] API misuse in examples
  • Isolated GCC/libstdc++ false positives (std::regex) without masking project warnings.
  • Improved and unified CMake configuration across all modules.

🧪 Tests

  • Added and stabilized HTTP cache smoke tests.
  • Added middleware-level tests validating cache behavior.
  • Improved test CMake configuration for consistency.

📦 Modules Updated

  • core
  • middleware
  • cli
  • websocket
  • orm
  • utils
  • json

🔒 Stability & Compatibility

  • No breaking API changes.
  • Focus on correctness, performance, and long-term maintainability.
  • Stable foundation for upcoming offline-first and sync/WAL features.

[1.14.0] - 2025-12-14

Added

Changed

Removed

ORM Migrations & CLI Stabilization

Added

  • New ORM migrations engine with file-based .up.sql / .down.sql support
  • Internal migrator tool (vix_orm_migrator) used by the CLI
  • vix orm command with subcommands:
    • migrate
    • rollback
    • status
  • Support for CLI flags:
    • --db, --dir, --host, --user, --pass, --steps
  • Environment-based...
Read more

v1.17.0

26 Dec 12:22
74079c6

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.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 practical usage examples.

Packaging & Security

  • Clear separation between signed and unsigned packages.
  • Environment-based key discovery:
    • VIX_MINISIGN_SECKEY for package signing.
    • VIX_MINISIGN_PUBKEY for signature verification.
  • More robust verification feedback and strict modes.

Developer Experience

  • Smoother packaging and verification workflow.
  • More predictable CLI behavior with explicit output.
  • Improved diagnostics in verbose mode.

This release focuses on polishing the CLI, strengthening package security,
and delivering a professional packaging & verification workflow for Vix.

[1.14.5] - 2025-12-19

Added

Changed

Removed

v1.14.5 — 2025-01-18

Added

  • New CLI command: vix pack.
  • Package a Vix project into dist/<name>@<version>/.
  • Optional .vixpkg archive generation.
  • Manifest v2 (vix.manifest.v2) with:
    • Package metadata (name, version, kind, license).
    • ABI detection (OS, architecture).
    • Toolchain information (C++ compiler, standard, CMake).
    • Layout flags (include, src, lib, modules, README).
    • Exports and dependencies from vix.toml.

Security

  • Payload integrity via SHA256 content digest.
  • Stable payload hashing excluding generated files.
  • Optional Ed25519 signature using minisign:
    • meta/payload.digest
    • meta/payload.digest.minisig
    • Secret key via VIX_MINISIGN_SECKEY.

Changed

  • CLI help updated to include vix pack.
  • Internal CLI and middleware refactoring to support packaging flow.

Notes

  • Signing is optional and enabled only when minisign is available.
  • Manifest generation avoids self-referential hashing.

[1.14.4] - 2025-12-17

Added

Changed

Removed

v1.14.4

Fixed

  • Fixed ORM migrator build after driver abstraction refactor.
  • Replaced deprecated MySQL connection APIs with the factory-based Connection interface.
  • Fixed CI failures caused by abstract Connection instantiation.
  • Ensured the migrator compiles correctly when database drivers are disabled.

[1.14.3] - 2025-12-17

Added

Changed

Removed

v1.14.3 — 2025-12-17

Fixed

  • Fixed JSON umbrella integration: <vix.hpp> now reliably exposes vix::json builders (o, a, kv).
  • Fixed missing OrderedJson type in core RequestHandler.
  • Fixed compilation errors in examples relying on implicit JSON availability.
  • Fixed vix_json CMake include paths for both build-tree and install-tree usage.

Internal

  • Improved Core ↔ JSON module boundary consistency.
  • Stabilized umbrella build (vix::vix) dependency propagation.

Compatibility

  • No breaking API changes.
  • Existing applications continue to work without modification.

[1.14.2] - 2025-12-17

Added

Changed

Removed

v1.14.2 — 2025-12-17

Fixed

  • core/http: fixed RequestHandler build failures by using the local OrderedJson alias and preventing name lookup from resolving to POSIX ::send() (now uses this->send() internally).
  • json: improved unified include header vix/json.hpp and ensured OrderedJson exposure is consistent across the JSON module.

[1.14.1] - 2025-12-17

Added

Changed

Removed

v1.14.1 — Stability, Cache & Build Hygiene Release

Release date: 2025-12-17

✨ Highlights

  • Finalized HTTP GET cache system across core and middleware.
  • Integrated cache as a first-class middleware in the request pipeline.
  • Added comprehensive cache and middleware tests.
  • Achieved strict warning-free builds (-Weffc++) across all modules.

🧱 Core & Middleware

  • Completed HTTP cache implementation (Memory, File, LRU stores).
  • Introduced cache utilities (CacheKey, HTTP header helpers).
  • Clean integration with HTTPServer, Router, and Session.
  • Added HTTP cache middleware for transparent GET caching.
  • Added periodic middleware support for timed/background tasks.
  • Middleware pipeline refined and stabilized.

🛠️ Build & Quality

  • Enforced strict warning hygiene with -Weffc++.
  • Fixed:
    • sign-conversion warnings
    • ignored return values (chdir, setenv, etc.)
    • [[nodiscard]] API misuse in examples
  • Isolated GCC/libstdc++ false positives (std::regex) without masking project warnings.
  • Improved and unified CMake configuration across all modules.

🧪 Tests

  • Added and stabilized HTTP cache smoke tests.
  • Added middleware-level tests validating cache behavior.
  • Improved test CMake configuration for consistency.

📦 Modules Updated

  • core
  • middleware
  • cli
  • websocket
  • orm
  • utils
  • json

🔒 Stability & Compatibility

  • No breaking API changes.
  • Focus on correctness, performance, and long-term maintainability.
  • Stable foundation for upcoming offline-first and sync/WAL features.

[1.14.0] - 2025-12-14

Added

Changed

Removed

ORM Migrations & CLI Stabilization

Added

  • New ORM migrations engine with file-based .up.sql / .down.sql support
  • Internal migrator tool (vix_orm_migrator) used by the CLI
  • vix orm command with subcommands:
    • migrate
    • rollback
    • status
  • Support for CLI flags:
    • --db, --dir, --host, --user, --pass, --steps
  • Environment-based...
Read more