#api #cloud #openstack


Asynchronous OpenStack session and authentication

14 releases

new 0.3.3 Oct 11, 2020
0.3.1 Jul 13, 2020
0.2.5 Oct 1, 2019
0.2.4 Jun 17, 2019
0.1.1 Mar 31, 2019

#30 in Authentication

Download history 9/week @ 2020-06-24 33/week @ 2020-07-01 26/week @ 2020-07-08 26/week @ 2020-07-15 16/week @ 2020-07-22 4/week @ 2020-07-29 36/week @ 2020-08-05 36/week @ 2020-08-12 27/week @ 2020-08-19 69/week @ 2020-08-26 92/week @ 2020-09-02 95/week @ 2020-09-09 93/week @ 2020-09-16 97/week @ 2020-09-23 35/week @ 2020-09-30 44/week @ 2020-10-07

216 downloads per month
Used in 2 crates


4.5K SLoC

Asynchronous OpenStack session and authentication

Build Status License Latest Version Documentation

The goal of this project is to provide a asynchronous API for HTTP requests against OpenStack clouds. For a more high-level API see rust-openstack.

This project requires Rust compiler 1.40.0 or newer.


Asynchronous OpenStack session and authentication.


This crate provides low-level asynchronous access to OpenStack API. It features:

  1. Authentication and token caching.
  2. Major and microversion handling.
  3. Service catalog integration.
  4. JSON API error handling.
  5. Service types for supported services.

It does NOT provide:

  1. Protocol structures for any services.
  2. Automatic microversion negotiation.
  3. High-level object-oriented API.

See openstack crate for these features.


This crate requires Rust 2018 edition and compiler version 1.40.0 or newer.


Your entry point to the API is the Session structure. To create it you need an authentication type object first. It can be obtained by:

  • Using Password authentication against the Identity service.
  • Using NoAuth authentication type, allowing access to standalone services without authentication.
  • Using HTTP BasicAuth authentication type for services supporting it (only ironic and ironic-inspector at the moment).
  • By loading both authentication parameters and a session from:
    • clouds.yaml, clouds-public.yaml and secure.yaml configuration files using from_config.
    • environment variables using from_env.

See Session documentation for the details on using a Session for making OpenStack calls.

If you need to work with a small number of servics, Adapter provides a more convenient interface. An adapter can be created directly using Adapter::new or from an existing Session using Session::adapter or Session::into_adapter.


~249K SLoC