rustfs-signer 0.0.3

Digital signature generation and verification for RustFS, ensuring data integrity and authenticity.
Documentation
[![RustFS](https://rustfs.com/images/rustfs-github.png)](https://rustfs.com)

# RustFS Signer - Request Signing & Authentication

<p align="center">
  <strong>AWS-compatible request signing and authentication for RustFS object storage</strong>
</p>

<p align="center">
  <a href="https://github.com/rustfs/rustfs/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/rustfs/rustfs/actions/workflows/ci.yml/badge.svg" /></a>
  <a href="https://docs.rustfs.com/en/">๐Ÿ“– Documentation</a>
  ยท <a href="https://github.com/rustfs/rustfs/issues">๐Ÿ› Bug Reports</a>
  ยท <a href="https://github.com/rustfs/rustfs/discussions">๐Ÿ’ฌ Discussions</a>
</p>

---

## ๐Ÿ“– Overview

**RustFS Signer** provides AWS-compatible request signing and authentication for the [RustFS](https://rustfs.com)
distributed object storage system. It implements AWS Signature Version 4 (SigV4) signing algorithm, pre-signed URLs, and
various authentication methods to ensure secure API access.

> **Note:** This is a security-critical submodule of RustFS that provides essential authentication capabilities for the
> distributed object storage system. For the complete RustFS experience, please visit
> the [main RustFS repository]https://github.com/rustfs/rustfs.

## โœจ Features

### ๐Ÿ” AWS-Compatible Signing

- **SigV4 Implementation**: Full AWS Signature Version 4 support
- **Pre-signed URLs**: Temporary access URLs with expiration
- **Chunked Upload**: Streaming upload with signature validation
- **Multi-part Upload**: Signature validation for large files

### ๐Ÿ›ก๏ธ Authentication Methods

- **Access Key/Secret**: Traditional AWS-style authentication
- **STS Token**: Temporary security token support
- **IAM Role**: Role-based authentication
- **Anonymous Access**: Public read access support

### ๐Ÿš€ Performance Features

- **Signature Caching**: Avoid repeated signature calculations
- **Batch Signing**: Sign multiple requests efficiently
- **Streaming Support**: Sign data streams without buffering
- **Hardware Acceleration**: Use hardware crypto when available

### ๐Ÿ”ง Advanced Features

- **Custom Headers**: Support for custom and vendor headers
- **Regional Signing**: Multi-region signature support
- **Clock Skew Handling**: Automatic time synchronization
- **Signature Validation**: Server-side signature verification

## ๐Ÿ“ฆ Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
rustfs-signer = "0.0.3"
```

## ๐Ÿ”ง Usage

## ๐Ÿ“‹ Requirements

- **Rust**: 1.85.0 or later
- **Platforms**: Linux, macOS, Windows
- **Dependencies**: Cryptographic libraries (ring, rustls)
- **Compatibility**: AWS S3 API compatible

## ๐ŸŒ Related Projects

This module is part of the RustFS ecosystem:

- [RustFS Main]https://github.com/rustfs/rustfs - Core distributed storage system
- [RustFS IAM]../iam - Identity and access management
- [RustFS Crypto]../crypto - Cryptographic operations

## ๐Ÿ“š Documentation

For comprehensive documentation, visit:

- [RustFS Documentation]https://docs.rustfs.com
- [Signer API Reference]https://docs.rustfs.com/signer/
- [AWS S3 Compatibility]https://docs.rustfs.com/s3-compatibility/

## ๐Ÿ”— Links

- [Documentation]https://docs.rustfs.com - Complete RustFS manual
- [Changelog]https://github.com/rustfs/rustfs/releases - Release notes and updates
- [GitHub Discussions]https://github.com/rustfs/rustfs/discussions - Community support

## ๐Ÿค Contributing

We welcome contributions! Please see
our [Contributing Guide](https://github.com/rustfs/rustfs/blob/main/CONTRIBUTING.md) for details.

## ๐Ÿ“„ License

Licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/rustfs/rustfs/blob/main/LICENSE) for
details.

---

<p align="center">
  <strong>RustFS</strong> is a trademark of RustFS, Inc.<br>
  All other trademarks are the property of their respective owners.
</p>

<p align="center">
  Made with ๐Ÿ” by the RustFS Team
</p>