solverforge-core 0.2.6

Language-agnostic wrapper for the Timefold JVM
Documentation

solverforge-core

Language-agnostic core library for SolverForge, a constraint solver that bridges Rust to the Timefold JVM via WASM modules and HTTP.

Overview

This crate provides the foundation for SolverForge's constraint solving capabilities:

  • Value types - Language-agnostic representations (Value, ObjectHandle, FunctionHandle)
  • Score types - SimpleScore, HardSoftScore, HardMediumSoftScore, and decimal variants
  • Domain modeling - Planning annotations, entities, and solutions
  • Constraint streams - Functional constraint definition API
  • WASM generation - Compile constraints to WebAssembly modules
  • Solver service - HTTP client for the Timefold solver backend

Usage

Add to your Cargo.toml:

[dependencies]
solverforge-core = "0.1"

Basic Example

use solverforge_core::{Value, HardSoftScore, SolverFactory};

// Create a solver factory with configuration
let factory = SolverFactory::builder()
    .with_service_url("http://localhost:8080")
    .build();

// Create domain values
let score = HardSoftScore::of(0, -5);
println!("Score: {}", score);

Architecture

┌─────────────────────────────────────────────────────────────┐
│ Language Bindings (Python, JS, Go)                          │
├─────────────────────────────────────────────────────────────┤
│ solverforge-core (this crate)                               │
│  ├─ Domain modeling                                         │
│  ├─ Constraint definition                                   │
│  ├─ WASM module generation                                  │
│  └─ HTTP solver client                                      │
├─────────────────────────────────────────────────────────────┤
│ Solver Service (Timefold JVM)                               │
└─────────────────────────────────────────────────────────────┘

Documentation

License

Apache-2.0