Proc macro to help with struct to ts point conversion

brocade, hitachi, isilon, netapp, openstack, rust, scaleio, vmax, vnx



Build Status crates.io Documentation Library for all our storage systems

libstorage is a collection of helper functions written in RUST to make interfacing with storage servers easier. Under the src/ directory there is a module for each storage system the library supports.

To start using libstorage

libstorage is easy to use in your project. Just include the dependency in your Cargo.toml and you're ready to roll. The isilon library has been put behind a cargo feature flag because it's so large and the feature has to be enabled during the build.


The following example shows a sample use of the hitachi module:

use libstorage::hitachi::HitachiConfig;
use reqwest::Client;

fn main() -> Result<(), libstorage::Error>> {
    let web_client = reqwest::Client::new();
    let hitachi_config = HitachiConfig {
        endpoint: "server".into(),
        user: "username".into(),
        password: "password".into(),
        region: "region".into(),

    // 1. Get the host:instance list with /AgentForRAID
    let agents = get_agent_for_raid(&web_client, &hitachi_config)?;
    println!("items: {} {:?}", agents.items.len(), agents);


Support and Contributions

If you need support, start by checking the issues page. If that doesn't answer your questions, or if you think you found a bug, please file an issue.

That said, if you have questions, reach out to us communication.

Want to contribute to libstorage? Awesome! Check out the contributing guide.