About¶
Why specsolve exists and what it will not become. Nothing here is needed to run a model.
Why¶
An optimisation model usually arrives as Python that builds math, so a diff shows scaffolding rather than constraints.
specsolve makes the math the artifact: a YAML file of variables, constraints and objective, checked before any data exists, and reviewable by someone who knows only the math.
What it will not become¶
The closed language cannot say structure that needs the solver's answer to decide the next row, or imperative modelling of any kind. In return it gets validation before data, two builds of one language, and a build that streams. The limits of the language list each refusal with its rewrite. Parity with another tool is not by itself a reason to add anything.
More¶
| Coming from linopy | the same model in linopy and in specsolve, and what maps to what |
| Benchmarks | what a build costs against four other ways of writing the same model |
| Prior art and credit | the work this is derived from, and how to cite it |
| Changelog | every release |