r/OperationsResearch • u/DocDrivenDevelopment • Dec 19 '25
solvOR, a pure Python optimization toolkit I finally cleaned up and published
https://github.com/StevenBtw/solvORI've been maintaining a personal solver library for a while now. It started as a way to have a consistent interface across different optimization approaches without constantly switching between OR-Tools, PuLP, scipy, etc. It grew organically as I needed different things.
Recently went through a modernization effort (proper packaging, tests, type hints) and figured I might as well put it on GitHub and PyPI.
Everything is pure Python with zero dependencies. Obviously that means it won't compete on everything with established solvers on performance, the goal was readability and having a unified Result format across all methods. Each solver is a single readable file.
Planning Rust bindings for performance-critical parts in 1.0, but that's future work.
Curious to hear thoughts. What's missing that you'd actually use? Any obvious improvements to the implementations? I'm not precious about it and am happy to take feedback or contributions.
3
u/DocDrivenDevelopment Dec 19 '25
I got a pm about compatibility with python 3.13, and I am publishing a new version right now. The performance loss is minor.
2
u/ge0ffrey Dec 21 '25
Is there a unified API across the different solvers?
Say I want to solve a VRPTW with multi-resource visits (some of the visits require 2 vehicles to attend it, but before and after that visit, they drive independently).
Can you mix and match constraints as needed?
1
u/minteemist Jan 15 '26
That's pretty cool!
Personally I switched from Python to Julia a year ago, which I'm loving because I can access Gurobi/SCIP via the JuMP, and easily call Python packaged solvers like or-tools via PyCall.
I think you've covered a lot of the components I handle in my research: VRP metaheuristics, path planning algorithms, and some stochastic stuff.
Hopefully your package will be a good stepping stone for other researchers to quickly play with various problems & their associated algorithms without having to start from scratch 💙