#constraint-solver #entity #vec #score

solverforge

SolverForge - A constraint solver in Rust

10 unstable releases (3 breaking)

0.5.1 Jan 16, 2026
0.5.0 Jan 15, 2026
0.4.0 Jan 4, 2026
0.3.0 Jan 2, 2026
0.2.6 Dec 18, 2025

#2465 in Algorithms

Apache-2.0

21KB
443 lines

SolverForge - A Constraint Solver in Rust

SolverForge is a constraint satisfaction/optimization solver inspired by Timefold. It helps you optimize planning and scheduling problems.

Quick Start

use solverforge::prelude::*;

#[problem_fact]
pub struct Employee {
    #[planning_id]
    pub id: i64,
    pub name: String,
}

#[planning_entity]
pub struct Shift {
    #[planning_id]
    pub id: i64,
    #[planning_variable]
    pub employee: Option<i64>,
}

#[planning_solution]
pub struct Schedule {
    #[problem_fact_collection]
    pub employees: Vec<Employee>,
    #[planning_entity_collection]
    pub shifts: Vec<Shift>,
    #[planning_score]
    pub score: Option<HardSoftScore>,
}

Dependencies

~12–17MB
~240K SLoC