Getting Started
Start with the generic CLI path, then continue into one concrete hospital walkthrough.
Planning software in Rust
SolverForge helps teams turn scheduling, routing, allocation, and dispatch rules into production software. Domain models, constraints, and runtime control stay in ordinary Rust code, so the behavior remains explicit from the first prototype to the running system.
Write constraints like you write code
Model shifts, routes, tasks, workers, vehicles, and inventories as ordinary application code. SolverForge keeps rule definitions, score analysis, and solver control close to the domain types your team already understands.
let required_skill = ConstraintFactory::<Plan, HardSoftDecimalScore>::new()
.shifts()
.filter(|shift: &Shift| shift.employee_idx.is_some())
.join((
Plan::employees_slice,
equal_bi(
|shift: &Shift| shift.employee_idx,
|employee: &Employee| Some(employee.index),
),
))
.filter(|shift: &Shift, employee: &Employee| {
!employee.skills.contains(&shift.required_skill)
})
.penalize(HardSoftDecimalScore::of_hard_scaled(1_000_000))
.named("Required skill");
Open source implementation
Scaffold a neutral project shell, then grow the domain with generators.
Ship scheduling views, retained-job controls, and embedded frontend assets.
Model matrices, route geometry, and map-backed planning systems.
Inspect the zero-erasure runtime, phases, moves, and score analysis tools.
Proof before a call
The documentation shows the operating model, the source shows implementation quality, the examples show behavior, and the release notes show active maintenance. You do not have to wait for a sales conversation to understand how SolverForge works.
In practice
Operator feedback
I have incorporated SolverForge in my new Rust application for staff scheduling and it's working like a charm, A+
Fawaz Halwani, Pathologist, The Ottawa Hospital
See the problems SolverForge is built for and how the open source work is maintained.