Skip to content

vixcpp/cli

Repository files navigation

🧩 Vix.cpp — CLI Module

Modern C++ Runtime Tooling • Zero-Friction Development • Fast Web Apps

C++ License Status Platform Runtime

Vix CLI is the official command-line interface for
Vix.cpp — the modern C++ backend runtime.

It provides a professional, modern, runtime-like developer experience for C++, comparable to Python, Node.js, Deno, or Bun.


🚀 Overview

The Vix CLI (vix) brings modern runtime ergonomics to C++:

  • Instant project creation
  • Smart CMake-based builds
  • Friendly compiler diagnostics
  • Sanitizer-first validation
  • Script-like execution of .cpp files
  • Packaging & artifact verification
  • Built-in interactive REPL (default)

Running vix with no arguments launches the interactive REPL.


⚙️ Features

🧠 Built-in REPL (default)

vix
  • Variables & expressions
  • JSON literals
  • Math evaluation
  • Runtime APIs (Vix.cwd(), Vix.env(), etc.)
  • Script-like exploration

Explicit mode:

vix repl

🏗️ Project scaffolding

vix new blog

Creates:

  • CMake-based project
  • Modern C++20 structure
  • Ready-to-run Vix app

⚡ Smart build system

vix build
  • Uses CMake presets automatically
  • Parallel builds
  • Colored logs & spinners
  • Clean Ctrl+C handling

🚀 Run applications

vix run
  • Auto-build if required
  • Real-time logs
  • Runtime log-level injection

Script mode:

vix run demo.cpp

🧪 Check & Tests (Sanitizers ready)

Compile-only validation:

vix check
vix check demo.cpp

With sanitizers:

vix check demo.cpp --san
vix check demo.cpp --asan
vix check demo.cpp --ubsan
vix check demo.cpp --tsan

Run tests:

vix tests
vix tests --san

📦 Packaging & Verification

Create a distribution artifact:

vix pack --name blog --version 1.0.0

Verify artifacts:

vix verify dist/blog@1.0.0
vix verify dist/blog@1.0.0 --require-signature

🧠 ErrorHandler — your C++ teacher

  • Explains template & overload errors
  • Detects missing includes
  • Highlights the first real error
  • Provides actionable hints

🧰 Commands

vix <command> [options]
Command Description
vix Start REPL (default)
vix repl Start REPL explicitly
vix new <name> Create a new project
vix build [name] Configure + build
vix run [name] [--args] Build and run
vix dev [name] Dev mode (watch & reload)
vix check [path] Compile-only validation
vix tests [path] Run tests
vix pack [options] Create distribution artifact
vix verify [options] Verify artifact
vix orm <subcommand> ORM tooling
vix help [command] Show help
vix version Show version

🧪 Usage Examples

vix
vix new api
cd api
vix dev
vix check --san
vix tests
vix pack --name api --version 1.0.0
vix verify dist/api@1.0.0

🧩 Architecture

The CLI is built around a command dispatcher:

std::unordered_map<std::string, CommandHandler> commands;

Main components

Path Responsibility
include/vix/cli/CLI.hpp CLI entry & parsing
src/CLI.cpp Command routing
src/ErrorHandler.cpp Compiler diagnostics
src/commands/ReplCommand.cpp Interactive REPL
src/commands/CheckCommand.cpp Validation
src/commands/PackCommand.cpp Packaging
src/commands/VerifyCommand.cpp Verification

🔧 Build & Installation

Standalone CLI build

git clone https://github.com/vixcpp/vix.git
cd vix/modules/cli
cmake -B build -S .
cmake --build build -j$(nproc)

Binary:

./build/vix

Full Vix build

cd vix
cmake -B build -S .
cmake --build build

⚙️ Configuration

Environment variables

Variable Description
VIX_LOG_LEVEL Runtime log level
VIX_STDOUT_MODE line for real-time logs
VIX_MINISIGN_SECKEY Secret key for pack
VIX_MINISIGN_PUBKEY Public key for verify

📦 CLI Help Output

Vix.cpp — Modern C++ backend runtime
Version: v1.x.x

Usage:
  vix [GLOBAL OPTIONS] <COMMAND> [ARGS...]
  vix help <command>

Quick start:
  vix new api
  cd api && vix dev
  vix pack --name api --version 1.0.0 && vix verify

Commands:
  Project:
    new <name>               Create a new Vix project
    build [name]             Configure + build
    run   [name]             Build and run
    dev   [name]             Dev mode
    check [path]             Compile-only validation
    tests [path]             Run tests

  Packaging & security:
    pack                     Create distribution artifact
    verify                   Verify artifact or package

  REPL:
    repl                     Start interactive REPL
    (default)                Run `vix` to start the REPL

Global options:
  --verbose
  -q, --quiet
  --log-level <level>
  -h, --help
  -v, --version

🧾 License

MIT License © Gaspard Kirira
See LICENSE for details.

About

vixcpp/cli – Command Line Interface for vix.cpp. Scaffold new projects, run the server with hot reload, and generate models or resources.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages