pkgw / slurm-rs

Rust bindings for interacting with the Slurm workload manager.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NOTE: Unmaintained

This repo is unmaintained and hasn't been updated in a long time. It worked pretty decently, but I haven't needed it for a while.

Architecturally, the API/ABI to the Slurm libraries was not very stable, and was pretty hard to use. It would probably be better to develop a crate that invokes the Slurm CLI programs under the hood, rather than trying to link against the shared libraries.

slurm-rs: slurm and slurmplus

Rust bindings for the Slurm workload manager, and a command-line program (slurmplus) that provides some useful functionality.

The coverage of the underlying Slurm feature set is far from complete, but the basic framework is in place.

For a summary of recent changes to the code, see CHANGELOG.md for the command-line tool, slurm/CHANGELOG.md for the developer-facing library, and slurm-sys/CHANGELOG.md for the low-level FFI bindings.

Building and Compatibility

See the README for the slurm-sys subdirectory for some notes on how to build against your Slurm library correctly. You must have a functional rustfmt installed. You may also need to set some environment variables to allow the build script to locate your Slurm libraries and include files.

At the moment, this crate is being developed against Slurm 17.11. The Slurm C API is not especially stable, so it is possible that this crate will fail to compile against other versions of Slurm, or even exhibit wrong runtime behavior. The goal is for the crate to work with a wide range of Slurm versions, and there is code infrastructure to adapt to the evolving C API. If the crate fails to build for a reason that appears to be related to the version of Slurm that you're using, please file an issue with the details.

This crate also requires that the Slurm accounting database library libslurmdb is available. Contributions to relax this requirement would be welcome.

Licensing

Licensed under the MIT License.

About

Rust bindings for interacting with the Slurm workload manager.

License:MIT License


Languages

Language:Rust 99.2%Language:C 0.8%