Crate reqsign

source ·
Expand description

Signing API requests without effort.

Example

use anyhow::Result;
use reqsign::AwsV4Signer;
use reqwest::Client;
use reqwest::Request;
use reqwest::Url;

#[tokio::main]
async fn main() -> Result<()> {
    // Signer can load region and credentials from environment by default.
    let signer = AwsV4Signer::builder()
        .service("s3")
        .region("test")
        .allow_anonymous()
        .build()?;
    // Construct request
    let url = Url::parse("https://s3.amazonaws.com/testbucket")?;
    let mut req = reqwest::Request::new(http::Method::GET, url);
    // Signing request with Signer
    signer.sign(&mut req)?;
    // Sending already signed request.
    let resp = Client::new().execute(req).await?;
    println!("resp got status: {}", resp.status());
    Ok(())
}

Available Services

Features

reqsign support http::Request by default. Other request types support are hided under feature gates to reduce dependencies.

Modules

Provide Credential for most services.

Structs

Builder for Signer
Singer for Aliyun OSS.
Builder for Signer.
Singer that implement AWS SigV4.
Builder for Signer.
Singer that implement Azure Storage Shared Key Authorization.
Builder for Signer.
Singer that implement Google OAuth2 Authentication.
Builder for Signer.
Singer that implement Huawei Cloud Object Storage Service Authorization.