Local-first portable optimization problems and solver plugins
Project description
🧪 Rastion - Your Personal Optimization Lab
A local-first optimization library for portable models and pluggable solvers. Think Hugging Face for optimization workflows: package problems, swap solvers, benchmark results, and keep run history.
Why Rastion?
- 🔌 Plug & Play: Switch solvers without rewriting problems.
- 📦 Portable Problems: Keep model, instances, metadata, and cards together.
- 🚀 Quantum-Ready: QUBO and QAOA support included.
- 📊 Benchmark + History: Compare solvers and keep reproducible run records.
- 🖥️ TUI First: Interactive lab experience with keyboard navigation.
Installation
Core install:
pip install -e .
TUI install:
pip install -e ".[tui]"
All optional solver extras:
pip install -e ".[all]"
Launch the Lab
rastion
Main actions:
- 📂 Browse Problems
- ⚙️ Browse Solvers
- ▶️ Solve a Problem
- 📊 Compare Solvers
- 📜 View Run History
- 📦 Export Problem
- 📥 Install Solver (from GitHub URL)
Built-in Problems
| Problem | Type | Description |
|---|---|---|
| knapsack | MILP | Classic 0-1 knapsack |
| maxcut | QUBO | MaxCut on graph |
| portfolio | QP | Mean-variance portfolio |
| facility_location | MILP | Facility location |
| set_cover | MILP | Set covering |
| tsp | MILP | Traveling salesman |
Built-in Solvers
| Solver | Type | Best For |
|---|---|---|
| baseline | exact/heuristic | Binary MILP, testing |
| highs | MILP/QP | Fast MILP and QP |
| ortools | MILP | Google's MILP stack |
| scip | MILP | Academic/advanced MILP |
| neal | QUBO | Simulated annealing |
| qaoa | QUBO | Quantum-style QAOA sampling |
Sharing Solvers
Anyone can create and share a solver plugin.
- Create a GitHub repo containing
solver.pyat repo root. - Share your ZIP URL.
- Install with:
rastion install-solver https://github.com/YOU/repo/archive/main.zip
Template files:
rastion/solvers/solver_template.pyrastion/solvers/solver_card_template.md
CLI Commands
rastion(launch TUI)rastion info [--verbose]rastion validate <spec> <instance>rastion solve <spec_or_problem> <instance>rastion benchmark <problem>rastion install <problem_folder>rastion export <problem> <destination>rastion install-solver <zip_url>
Documentation
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rastion-0.1.0.tar.gz.
File metadata
- Download URL: rastion-0.1.0.tar.gz
- Upload date:
- Size: 51.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fd5da941ae6959afcf835ef89dc46471bc0a6aa4b3edde839ea356b2d26a143
|
|
| MD5 |
1e15cf43fc213421e9c1658197ffc489
|
|
| BLAKE2b-256 |
de8b375e671de4f44766b93e2e7531521e4c6a469bd96a3ac99729ede1c41df5
|
File details
Details for the file rastion-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rastion-0.1.0-py3-none-any.whl
- Upload date:
- Size: 72.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ffd2d23b6ba404e0bc388c412bb8804d81ebff8449d80c091e90add5c2752dc
|
|
| MD5 |
737fe603071c15467fa9050db8f624f3
|
|
| BLAKE2b-256 |
99c5f45f6a70174b8e918d3624bbe2d0a3b26b5e7657555d9b17a69c0370b3bf
|