RustFS Signer - Request Signing & Authentication
📖 Overview
RustFS Signer provides AWS-compatible request signing and authentication for the RustFS 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.
✨ 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
:
[]
= "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 - Core distributed storage system
- RustFS IAM - Identity and access management
- RustFS Crypto - Cryptographic operations
📚 Documentation
For comprehensive documentation, visit:
🔗 Links
- Documentation - Complete RustFS manual
- Changelog - Release notes and updates
- GitHub Discussions - Community support
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
Licensed under the Apache License, Version 2.0. See LICENSE for details.