| Crates.io | reqsign-core |
| lib.rs | reqsign-core |
| version | 1.0.0 |
| created_at | 2025-09-01 09:39:22.696845+00 |
| updated_at | 2025-09-01 09:39:22.696845+00 |
| description | Signing API requests without effort. |
| homepage | |
| repository | https://github.com/Xuanwo/reqsign |
| max_upload_size | |
| id | 1819358 |
| size | 72,457 |
Core components for signing API requests.
This crate provides the foundational types and traits for the reqsign ecosystem. It defines the core abstractions that enable flexible and extensible request signing.
use reqsign_core::{Context, Signer, ProvideCredential, SignRequest};
// Create a context with your implementations
let ctx = Context::default();
// Create a signer with credential loader and request builder
let signer = Signer::new(ctx, credential_loader, request_builder);
// Sign your requests
let mut parts = /* your request parts */;
signer.sign(&mut parts, None).await?;
The Context struct serves as a container for runtime dependencies:
FileRead traitHttpSend traitEnv traitProvideCredential: Load credentials from various sourcesSignRequest: Build service-specific signing requestsSigningCredential: Validate credential validityFileRead: Async file reading operationsHttpSend: HTTP request executionEnv: Environment variable accessThe Signer orchestrates the signing process by:
Check out the custom_signer example to see how to implement your own signing logic.
cargo run --example custom_signer
This crate is typically used with service-specific implementations:
reqsign-aws-v4 for AWS servicesreqsign-aliyun-oss for Aliyun OSSreqsign-azure-storage for Azure StorageLicensed under Apache License, Version 2.0.