7 releases

0.3.1 Dec 9, 2020
0.3.0 Mar 17, 2020
0.2.1 Jan 8, 2019
0.1.2 Jan 7, 2019

#15 in #expansion

23 downloads per month

MIT license

17KB
364 lines

Hostlist

Build of master branch

This is a Rust implementation of a hostlist library. Hostlists are a syntax for expressing multiple hosts, commonly used in HPC. E.g. compute[1-3] => compute1, compute2, compute3. However it goes a bit beyond what can be done with plain bash expansions of the type compute{1..3}.

Some other tools and applications supporting hostlists are

Usage

The library provides a single public function, with the signature

pub fn expand(a_str: &str) -> Result<Vec<String>, &'static str>

This function will expand a hostlist into a list of hostnames. E.g. "foo[1-3]" will result in a vector ["foo1", "foo2", "foo3"].

Command-line utility

A so far VERY rudimentary CLI app called hostlist is included, allowing to use the expand() function from the command line.

Building only the library

If one doesn't want the command line application, one can build the library only with

cargo build --no-default-features

Dependencies

~3MB
~51K SLoC