GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - vixcpp/vix: A modern C++ runtime for building fast and reliable applications.

BranchesTags
Open more actions menu

Latest commit

 

History

479 Commits
479 Commits

Folders and files

NameName
Last commit message
Last commit date
.githooks
.githooks
 
 
.github
.github
 
 
ci/sdk-consumer
ci/sdk-consumer
 
 
cmake
cmake
 
 
config
config
 
 
docs
docs
 
 
examples
examples
 
 
modules
modules
 
 
scripts
scripts
 
 
security
security
 
 
third_party
third_party
 
 
vix
vix
 
 
.env
.env
 
 
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CMakeLists.txt
CMakeLists.txt
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
Makefile.release
Makefile.release
 
 
PULL_REQUEST_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
 
 
README.ja.md
README.ja.md
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
SECURITY_TESTS.md
SECURITY_TESTS.md
 
 
minisign_ci.pub
minisign_ci.pub
 
 
vcpkg.json
vcpkg.json
 
 
vixcpp.pub
vixcpp.pub
 
 

Repository files navigation

Vix.cpp logo

Vix.cpp

A C++ developer platform for building native applications.

Website · Documentation · Registry · Engineering Notes

Vix.cpp brings the tools around a C++ application into one coherent workflow. You can use it to run and build projects, manage dependencies, work with application modules, run tests, inspect problems, package applications and prepare them for production.

Vix does not introduce a new language or hide the native C++ toolchain. A Vix project is still compiled by a C++ compiler, can work with CMake and existing libraries, and produces normal native executables and libraries.

Why Vix exists

C++ already gives developers excellent compilers, native performance and a large ecosystem. The difficult part often starts when a program becomes an application.

A project needs a build configuration. Then dependencies, tests, development commands, diagnostics, packaging and eventually production tooling appear. There are good tools for each of these problems, but developers still have to assemble them and maintain the workflow between them.

Vix exists to make that workflow more consistent without replacing the C++ ecosystem underneath it.

Vix.cpp architecture

Try it

Install Vix on Linux or macOS:

curl -fsSL https://vixcpp.com/install.sh | bash

On Windows PowerShell:

irm https://vixcpp.com/install.ps1 | iex

Check the installation:

vix --version

You can start with a normal C++ file.

#include <iostream>

int main()
{
    std::cout << "Hello from Vix.cpp\n";
}

Run it with:

vix run main.cpp

There is no separate execution model here. Vix builds and runs native C++.

When the project becomes larger, the same CLI can work with complete applications:

vix init
vix run
vix build
vix tests
vix check

The installation guide explains SDK profiles, platform requirements and the complete setup process.

From a C++ project to an application

Vix is more than a command that invokes a compiler. The platform includes runtime modules and development tooling for the things real applications commonly need, including HTTP, middleware, asynchronous execution, WebSockets, configuration, filesystems, processes, databases, serialization, caching, validation and logging.

These parts are designed to work together instead of giving every library its own project structure and development workflow.

For Vix-managed applications, the project can be described with vix.app:

name = "api"
type = "backend"
standard = "c++20"

sources = [
  "src/main.cpp",
]

packages = [
  "vix",
]

links = [
  "vix::vix",
]

Vix reads the application description and generates the native build it needs internally. The generated files remain inspectable, and projects that need custom CMake logic can continue using CMake directly.

Dependencies

Existing C++ libraries can be used from a Vix project.

For example:

vix install https://github.com/fmtlib/fmt

Vix can detect the dependency information, add it to the application and preserve the resolved commit in vix.lock.

A dependency can also be used temporarily without modifying the application:

vix run main.cpp --dep https://github.com/fmtlib/fmt

The goal is not to create a separate library ecosystem. Dependencies remain native C++ dependencies and participate in the normal build.

Application modules

Large applications can be divided into modules while remaining a single native application.

vix modules init
vix modules add auth
vix modules add realtime --websocket
vix modules check
vix build

A module can own its public interface, private implementation, tests and dependencies. Vix validates the relationships between modules and generates the registration and linking code required by the application.

This gives larger C++ applications explicit boundaries without requiring every feature to become a separate service or process.

Native C++ stays visible

Vix is not a replacement for C++, CMake or the compiler.

Existing CMake projects can keep their current structure and use Vix around them. New projects can start with vix.app when they do not need custom build logic.

In both cases, the important parts remain accessible to the developer: compiler diagnostics, dependencies, generated build files and native outputs.

Vix tries to remove repetitive work around C++ without making the underlying system mysterious.

Developer tools

Vix also includes tools for working with C++ outside the normal edit, build and run cycle.

Vix Reply is an interactive terminal for experimenting with native C++ and inspecting compiler diagnostics.

vix repl

Vix Note is a visual workspace for executable notes, experiments and developer tooling.

vix note

They use the same C++ environment as the rest of the platform rather than introducing another language or runtime.

Production

The workflow continues beyond local development.

vix deploy --dry-run
vix deploy
vix doctor production

Vix can help with build and test checks, service restarts, application health, production diagnostics and deployment recovery while leaving the application infrastructure under the developer's control.

Registry

The Vix Registry provides reusable C++ packages that can be installed through the Vix dependency workflow.

Packages remain normal native dependencies. Together with vix.lock and SDK profiles, this makes it easier to reproduce the same project environment on another machine or in CI.

Documentation

This README is only an introduction to the project.

The Vix.cpp documentation covers the application model, CLI, build workflow, runtime, modules, dependencies, SDK profiles, testing, production workflows and internal architecture in more detail.

Technical decisions, benchmarks and engineering work are published in the Engineering Notes.

Contributing

Vix.cpp is developed in the open. Contributions to the runtime, modules, diagnostics, tests, documentation, registry, CI, portability and performance are welcome.

For larger changes, opening an issue or discussion first makes it easier to consider the design in the context of the whole platform.

See CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md and CHANGELOG.md.

Maintained by Softadastra

Vix.cpp is maintained by Softadastra, a computing research and technology company.

License

Vix.cpp is available under the MIT License. See LICENSE.

About

A modern C++ runtime for building fast and reliable applications.

vixcpp.com

Topics

asiobackendbuncppcpp20crossplatformcxxdenohttphttp-servermodularnodejs-alternativeoffline-firstpeer-to-peerservervixvix-frameworkvix-runtimevixcppwebsocket

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

517 stars

Watchers

5 watching

Forks

36 forks
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.