An open API service indexing awesome lists of open source software.

https://github.com/clevercloud/clevercloud-sdk-rust

A rust client and structures to interact with the Clever-Cloud API.
https://github.com/clevercloud/clevercloud-sdk-rust

clevercloud jsonschemas logging metrics sdk

Last synced: 8 months ago
JSON representation

A rust client and structures to interact with the Clever-Cloud API.

Awesome Lists containing this project

README

          

# Clever-Cloud Software Development Kit - Rust edition

[![crates.io](https://img.shields.io/crates/v/clevercloud-sdk.svg)](https://crates.io/crates/clevercloud-sdk)
[![Released API docs](https://docs.rs/clevercloud-sdk/badge.svg)](https://docs.rs/clevercloud-sdk)
[![Continuous integration](https://github.com/CleverCloud/clevercloud-sdk-rust/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/CleverCloud/clevercloud-sdk-rust/actions/workflows/ci.yml)

> This crate provides structures and a client to interact with the Clever-Cloud
> API.

## Status

This crate is under development, you can use it, but it may have bugs or unimplemented features.

## Installation

To install this dependency, just add the following line to your `Cargo.toml` manifest.

```toml
clevercloud-sdk = { version = "^0.11.1", features = ["metrics", "jsonschemas"] }
```

## Usage

Below, you will find an example of executing a request to get information about
myself.

```rust
use std::error::Error;

use clevercloud_sdk::{Client, v2::myself::{self, Myself}};

#[tokio::main]
async fn main() -> Result<(), Box> {
let client = Client::from(Credentials {
token: "".to_string(),
secret: "".to_string(),
consumer_key: "".to_string(),
consumer_secret: "".to_string(),
});

let _myself: Myself = myself::get(&client).await?;

Ok(())
}
```

You could found more examples of how you could use the clevercloud-sdk by looking at the [command line](examples/cli/README.md) example.

## Features

| name | description |
| ----------- |--------------------------------------------------------------------------------------------------|
| trace | Use `tracing` crate to expose traces |
| jsonschemas | Use `schemars` to add a derive instruction to generate json schemas representation of structures |
| logging | Use the `log` facility crate to print logs. Implies `oauth10a/logging` feature |
| metrics | Expose HTTP metrics through `oauth10a` crate feature. |

### Metrics

Below, the exposed metrics gathered by prometheus:

| name | labels | kind | description |
| -------------------------------- | --------------------------------------------------------------- | ------- | -------------------------- |
| oauth10a_client_request | endpoint: String, method: String, status: Integer | Counter | number of request on api |
| oauth10a_client_request_duration | endpoint: String, method: String, status: Integer, unit: String | Counter | duration of request on api |

## License

See the [license](LICENSE).

## Getting in touch

- [@FlorentinDUBOIS](https://twitter.com/FlorentinDUBOIS)