solverforge 0.2.6

Constraint solver library powered by Timefold
Documentation

SolverForge

Constraint solver library powered by Timefold.

SolverForge is a Rust-based constraint solver library that uses WASM modules and HTTP communication to solve constraint satisfaction and optimization problems.

Installation

cargo add solverforge

Quick Start

use solverforge::prelude::*;

#[derive(PlanningEntity, Clone)]
struct Shift {
    #[planning_id]
    id: i64,
    #[planning_variable(value_range_provider = "employees")]
    employee: Option<Employee>,
}

#[derive(PlanningSolution, Clone)]
struct Schedule {
    #[problem_fact_collection]
    #[value_range_provider(id = "employees")]
    employees: Vec<Employee>,
    #[planning_entity_collection]
    shifts: Vec<Shift>,
    #[planning_score]
    score: Option<HardSoftScore>,
}

Features

  • embedded (default) - Includes embedded service that auto-manages the Java solver process

To disable the embedded service:

cargo add solverforge --no-default-features

License

Apache-2.0