Outscale SDK for Rust
π Links
- Documentation: https://docs.outscale.com/en/
- Project website: https://github.com/outscale/osc-sdk-rust
- Crate on crates.io: https://crates.io/crates/outscale_api
- Join our community on Discord
π Table of Contents
π§ Overview
Outscale SDK for Rust is the official Rust SDK for the OUTSCALE API, based on the Rust 2021 edition (stable).
Key features:
- Rust-first API client generated from OUTSCALEβs OpenAPI definition
- Strongly typed models for OUTSCALE resources
- HTTP client based on
reqwestwith configurable TLS backends (default-tlsandrustls-tls)
β Requirements
- A working Rust toolchain (Rust 2021 edition, stable)
- Cargo package manager
- Access to the OUTSCALE API (valid access key / secret key)
- Network access to the OUTSCALE API endpoints
β Installation
Option 1: Install from crates.io (recommended)
Add the outscale_api crate to your project using cargo:
Or manually add it to your Cargo.toml:
[]
= "1"
See the crate page on crates.io for the latest version.
Option 2: Install from source
π Configuration
The SDK itself is a Rust library: you configure it directly from your code (for example through a configuration struct or builder).
Refer to the examples/ directory in this repository for concrete examples of how to build and pass configuration to the client.
π Usage
Add the crate to your Cargo.toml (see Installation), then use it in your code.
For real-world examples (including how to authenticate and call specific APIs), check the
examples/directory.
Working with Async runtime
Calls will block the current thread from executing, instead of returning futures that must be run on a runtime.
Conversely, it must not be executed within an async runtime, or it will panic when it tries to block.
Consider changing the caller to wrap those calls in tokio::task::spawn_blocking.
use Profile;
use read_vms;
use ReadVmsRequest;
let config = default.and_then.unwrap;
let res = spawn_blocking.await.unwrap;
π‘ Examples
Enable TLS features
The crate exposes features to select the TLS backend used by reqwest:
default: enables thedefault-tlsfeature inreqwest(Rustls-based).native-tls: usesOpenSSLinstead of the default Rustls backend. When usingnative-tls, you typically also want to disable default features to avoid pulling indefault-tls:
[]
= { = "1", = false, = ["native-tls"] }
Explore the examples
Clone the repository and run the examples:
Examples are available in the examples/ directory and are a good starting point to:
- Set up authentication
- Call common OUTSCALE API endpoints
- Inspect responses and work with the generated models
π License
Outscale SDK for Rust is released under the BSD-3-Clause license.
Β© 2026 Outscale SAS
See LICENSE for full details.
This project is compliant with REUSE.
π€ Contributing
We welcome contributions!
Please read our Contributing Guidelines and Code of Conduct before submitting a pull request.