Skip to content

Conversation

@GaspardKirira
Copy link
Member

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

…module

- Add professional documentation for Vix Console (Node-like, dev-proof, zero-config)
- Describe guarantees, performance model, I/O constraints, and anti-spam behavior
- Register updated core module containing vix::console implementation
- Clarify that console is runtime/dev-only and not a production logger
- Explicitly document that Vix Console is intentionally minimal and Node-like in spirit
- Clarify that advanced console features (table, group, time, count, assert) are out of scope
- Direct users to vix::utils::Logger for structured, performance, and production-grade debugging
- Document precedence between VIX_CONSOLE_LEVEL and VIX_LOG_LEVEL to avoid ambiguity
- Reinforce stable, dev-proof usage guidelines
@GaspardKirira GaspardKirira added the core Core runtime, HTTP server, executor, lifecycle label Jan 25, 2026
@GaspardKirira GaspardKirira merged commit 9270781 into main Jan 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Core runtime, HTTP server, executor, lifecycle

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants