DocsDeveloper
Developer Guide
Comprehensive information for developers who want to build, modify, or contribute to the CyxWiz platform.
Documentation Sections
Components Overview
| Component | Language | Build System |
|---|---|---|
| cyxwiz-engine | C++20 | CMake |
| cyxwiz-server-node | C++20 | CMake |
| cyxwiz-central-server | Rust | Cargo |
| cyxwiz-backend | C++20 | CMake |
Prerequisites
Required Tools
| Tool | Version | Purpose |
|---|---|---|
| CMake | 3.20+ | C++ build system |
| Visual Studio | 2022+ | C++ compiler (Windows) |
| GCC/Clang | 10+/12+ | C++ compiler (Linux/macOS) |
| Rust | 1.70+ | Central Server |
| Python | 3.8+ | Scripting, bindings |
| Git | 2.0+ | Version control |
Optional Tools
| Tool | Purpose |
|---|---|
| CUDA Toolkit | NVIDIA GPU support |
| ArrayFire | GPU acceleration |
| Docker | Sandboxed execution |
| Redis | Central Server caching |
| PostgreSQL | Production 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
| Option | Default |
|---|---|
| CYXWIZ_BUILD_ENGINE | ON |
| CYXWIZ_BUILD_SERVER_NODE | ON |
| CYXWIZ_BUILD_TESTS | ON |
| CYXWIZ_ENABLE_CUDA | OFF |
| CYXWIZ_ENABLE_OPENCL | ON |
Build Configurations
| Preset | Use Case |
|---|---|
| windows-debug | Development |
| windows-release | Production |
| linux-debug | Development |
| linux-release | Production |
| android-release | Mobile 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.