About
About SolverForge
SolverForge helps teams build planning software that keeps scheduling, routing, allocation, and dispatch rules inspectable in Rust.
What SolverForge Helps You Build
SolverForge is for teams whose planning logic has outgrown manual rules, spreadsheet workflows, or opaque solver integrations. It keeps the model, constraints, score analysis, and solve lifecycle in ordinary Rust, so engineers can inspect what the planner is doing and operators can see why a plan changed.
Use it when your product needs to assign people, vehicles, jobs, inventory, or time slots while respecting hard constraints and improving softer business goals.
Model real operations
Represent shifts, routes, tasks, workers, vehicles, and demand as typed Rust data instead of forcing the problem into a separate modeling language.
Explain tradeoffs
Use score analysis, named constraints, and retained snapshots to understand why one plan beats another.
Ship the workflow
Connect solving to browser controls, retained jobs, scheduling views, and lifecycle actions without rebuilding the same UI plumbing.
Add routing when needed
Use road-network data, route geometry, and travel-time matrices when distance and geography affect the plan.
How It Works
The best way to judge SolverForge is through complete applications. These worked examples show how real planning questions become typed model objects, solver variables, constraints, retained jobs, and browser behavior.
Hospital scheduling
“Given a hospital workforce and a month of shifts, which employee should cover each shift?”
Employeeis a problem fact: input data the solver does not moveShiftis the planning entity: the thing the solver assignsShift.employee_idxis the planning variable: the actual choice the solver makes- 50 employees
- 688 shifts
Lesson timetabling
“Given lessons, teachers, student groups, rooms, and weekly timeslots, which timeslot and room should each lesson receive?”
Lessonis the planning entity.Lesson.timeslot_idxandLesson.room_idxare scalar planning variables.LARGE- 300 lessons
- 40 weekly timeslots
Delivery routing
“Given depots, vehicles, delivery stops, capacities, and time windows, which vehicle should visit each delivery and in what order?”
Deliveryis a problem fact: a stop the solver must place in a route.Vehicleis a planning entity: each vehicle owns one mutable route.Vehicle.delivery_orderis the list planning variable.PHILADELPHIA(default)FIRENZE
Field-service routing
“Given technicians, service visits, skills, parts, shifts, territories, and road-network travel, which technician should serve each visit and in what order?”
ServiceVisitis a problem fact.TechnicianRoute.visitsis the list planning variable.STANDARD- 6 technicians
- 48 service visits
Where It Fits
- Workforce scheduling with skills, availability, compliance rules, and preferences
- Routing and dispatch where travel time changes the quality of the plan
- Allocation and assignment problems with many possible combinations
- Interactive planning tools where users need solver feedback before accepting a plan
Why Teams Can Trust It
SolverForge ships as open source Rust crates, examples, release notes, and documentation. Before adopting it, teams can inspect the implementation, run the examples, review the API docs, and see how behavior changes from release to release.
Read the overview
Understand the planning problems SolverForge handles and when another solver style is a better fit.
Run a worked example
Inspect hospital, lessons, deliveries, and field-service apps with retained jobs, snapshots, and browser updates.
Inspect the source
Review the crates, examples, releases, and issue history before depending on the work.