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