CyxWiz LogoCyxWiz
DocsDeveloper

Developer Guide

Comprehensive information for developers who want to build, modify, or contribute to the CyxWiz platform.

Documentation Sections

Components Overview

ComponentLanguageBuild System
cyxwiz-engineC++20CMake
cyxwiz-server-nodeC++20CMake
cyxwiz-central-serverRustCargo
cyxwiz-backendC++20CMake

Prerequisites

Required Tools
ToolVersionPurpose
CMake3.20+C++ build system
Visual Studio2022+C++ compiler (Windows)
GCC/Clang10+/12+C++ compiler (Linux/macOS)
Rust1.70+Central Server
Python3.8+Scripting, bindings
Git2.0+Version control
Optional Tools
ToolPurpose
CUDA ToolkitNVIDIA GPU support
ArrayFireGPU acceleration
DockerSandboxed execution
RedisCentral Server caching
PostgreSQLProduction database

Quick Start

# Clone repository
git clone https://github.com/CYXWIZ-Lab/CYXWIZ.git
cd CyxWiz

# Run setup (first time)
./setup.sh      # Linux/macOS
setup.bat       # Windows (from Developer Command Prompt)

# Build all components
./build.sh      # Linux/macOS
build.bat       # Windows

Project Structure

CyxWiz/
├── cyxwiz-backend/           # Shared compute library
│   ├── include/cyxwiz/       # Public headers
│   ├── src/                  # Implementation
│   └── python/               # Python bindings
├── cyxwiz-engine/            # Desktop client
│   ├── src/
│   │   ├── gui/              # ImGui panels
│   │   ├── core/             # Core functionality
│   │   └── scripting/        # Python integration
│   └── resources/            # Assets, fonts, icons
├── cyxwiz-server-node/       # Compute worker
│   ├── src/
│   │   ├── gui/              # GUI mode panels
│   │   ├── core/             # Core services
│   │   └── http/             # OpenAI API
│   └── tui/                  # Terminal UI
├── cyxwiz-central-server/    # Orchestrator (Rust)
│   └── src/
│       ├── api/              # gRPC/REST
│       ├── scheduler/        # Job scheduling
│       └── blockchain/       # Solana integration
├── cyxwiz-protocol/          # gRPC definitions
│   └── proto/                # .proto files
├── scripts/                  # Build scripts
├── docs/                     # Documentation
├── tests/                    # Test suites
└── vcpkg.json                # C++ dependencies

Build Options

CMake Options
OptionDefault
CYXWIZ_BUILD_ENGINEON
CYXWIZ_BUILD_SERVER_NODEON
CYXWIZ_BUILD_TESTSON
CYXWIZ_ENABLE_CUDAOFF
CYXWIZ_ENABLE_OPENCLON
Build Configurations
PresetUse Case
windows-debugDevelopment
windows-releaseProduction
linux-debugDevelopment
linux-releaseProduction
android-releaseMobile backend

Development Workflow

Feature Development

# 1. Create feature branch from GUI (development branch)
git checkout GUI
git pull origin GUI
git checkout -b feature/my-feature

# 2. Make changes and commit
git add .
git commit -m "Add feature: description"

# 3. Run tests
cd build/windows-release && ctest

# 4. Create pull request to GUI branch

Code Review Checklist

  • Code follows style guide
  • Tests added/updated
  • Documentation updated
  • No compiler warnings
  • Cross-platform compatible

Adding New Features

GUI PanelC++
Create header and implementation files, add to CMakeLists.txt, integrate in MainWindow.
gRPC ServiceProto
Define in .proto file, rebuild to generate code, implement in Rust Central Server.
Backend AlgorithmC++
Define header in include/cyxwiz, implement with ArrayFire, add Python bindings.

Common Issues

"ArrayFire not found"
Install ArrayFire from arrayfire.com/download, set ArrayFire_DIR environment variable.
"vcpkg dependencies missing"
Run cd vcpkg && ./vcpkg install
"gRPC generation failed"
Ensure protobuf is installed via vcpkg, check .proto syntax, rebuild from clean.
"Python not found"
Install Python 3.8+, set PYTHON_EXECUTABLE in CMake.