Skip to content

Developer Guide

Building and extending Waremax.


Overview

This guide covers:

  • Understanding the codebase architecture
  • Extending Waremax with custom components
  • Using the crate APIs
  • Contributing to the project

Guide Sections

Architecture

Understand how Waremax is built.

Topic Description
Overview High-level architecture
Crate Structure Workspace organization
Data Flow How data moves through the system

Extending Waremax

Add custom functionality.

Topic Description
Custom Policies Implement new decision policies
Custom Distributions Add statistical distributions
Custom Entities Create new simulation entities

API Reference

Crate documentation.

Crate Description
waremax-core Core simulation engine
waremax-config Configuration parsing
waremax-entities Simulation entities
waremax-policies Decision policies
waremax-metrics Metrics collection

Contributing

Help improve Waremax.

Topic Description
Code Style Coding guidelines
Testing Test requirements
Documentation Doc standards

For Users Wanting to Extend

  1. Read Architecture Overview
  2. Choose extension type:
  3. Custom Policies
  4. Custom Distributions
  5. Follow implementation guide

For Contributors

  1. Read Contributing Guide
  2. Understand Testing Requirements
  3. Follow Pull Request Process

Development Setup

Prerequisites

# Rust toolchain (1.70+)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone repository
git clone https://github.com/example/waremax.git
cd waremax

Build

# Debug build
cargo build

# Release build
cargo build --release

# Run tests
cargo test

Development Workflow

# Format code
cargo fmt

# Run lints
cargo clippy

# Build docs
cargo doc --open

Crate Dependencies

waremax (binary)
├── waremax-sim
│   ├── waremax-core
│   ├── waremax-entities
│   ├── waremax-policies
│   └── waremax-metrics
├── waremax-config
├── waremax-testing
├── waremax-analysis
├── waremax-map
└── waremax-storage

Getting Help