| Crates.io | glpk-rust |
| lib.rs | glpk-rust |
| version | 0.1.5 |
| created_at | 2025-06-27 14:04:34.270517+00 |
| updated_at | 2025-08-25 16:32:15.287697+00 |
| description | Rust wrapper for GLPK (GNU Linear Programming Kit) with static linking |
| homepage | |
| repository | https://github.com/ourstudio-se/glpk-rust |
| max_upload_size | |
| id | 1728762 |
| size | 137,144 |
A Rust wrapper for the GNU Linear Programming Kit (GLPK) for solving Integer Linear Programming (ILP) problems.
This library is licensed under the GNU General Public License v3.0 (GPL-3.0).
Important: Since this library statically links with GLPK (which is GPL-3.0 licensed), any software that uses this library must also be licensed under GPL-3.0 or a compatible license. This means:
If you need to use GLPK in a non-GPL project, you'll need to either:
Only standard build tools are required:
xcode-select --install)build-essential package (Ubuntu/Debian) or gcc make (RHEL/CentOS)The build system will automatically:
Add this to your Cargo.toml:
[dependencies]
glpk-rust = "0.1.0"
use glpk_rust::*;
use std::collections::HashMap;
// Create variables
let variables = vec![
Variable { id: "x1", bound: (0, 5) },
Variable { id: "x2", bound: (0, 3) },
];
// Define constraints
let mut polytope = SparseLEIntegerPolyhedron {
A: IntegerSparseMatrix {
rows: vec![0, 1],
cols: vec![0, 1],
vals: vec![1, 1],
shape: Shape { nrows: 2, ncols: 2 },
},
b: vec![(0, 10), (0, 8)],
variables,
double_bound: true,
};
// Define objective
let mut objective = HashMap::new();
objective.insert("x1", 1.0);
objective.insert("x2", 1.0);
// Solve
let solutions = solve_ilps(&mut polytope, vec![objective], false, false);
println!("{:?}", solutions);