Concepts
Understand the core concepts behind SolverForge
SolverForge is a Rust library for solving constraint satisfaction and optimization problems. It bridges language bindings to the Timefold solver engine via WebAssembly and HTTP, eliminating JNI complexity.
┌─────────────────────────────────────────────────────────────────┐
│ Language Bindings │
│ (Python, JavaScript, etc.) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ solverforge-core (Rust) │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│
│ │ Domain │ │ Constraint │ │ WASM │ │ HTTP ││
│ │ Model │ │ Streams │ │ Builder │ │ Client ││
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘│
└─────────────────────────────────────────────────────────────────┘
│
HTTP/JSON
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ timefold-wasm-service (Java) │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│
│ │ Chicory │ │ Dynamic │ │ Timefold │ │ Host ││
│ │WASM Runtime│ │ Class Gen │ │ Solver │ │ Functions ││
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘│
└─────────────────────────────────────────────────────────────────┘
For user-facing quickstarts, see the Getting Started guides, including the Rust Quickstart which demonstrates using the core library directly.
| Section | Description |
|---|---|
| Concepts | Architecture and core concepts |
| Modeling | Define planning domains |
| Constraints | Build constraint streams |
| Solver | Configure and run the solver |
| WASM | Generate WASM predicates |
| Reference | API reference and error handling |
SolverForge is in active development. The MVP supports:
Understand the core concepts behind SolverForge
Define your planning domain with DomainModel, classes, and fields
Define hard and soft constraints using the constraint streams API
Configure and run the constraint solver
Generate WASM modules for constraint predicates
API reference and quick lookup guides
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.