🦀 Built with Rust for maximum performance

Enterprise Object Storage,
Simplified.

S3-compatible object storage that deploys anywhere. Single binary, air-gap ready, with a built-in web console. No dependencies, no complexity.

27
S3 Endpoints
20K+
Lines of Rust
~15MB
Binary Size
0
Dependencies*

Everything you need for enterprise storage

Production-ready features designed for mission-critical deployments

🔐

Server-Side Encryption

AES-256-GCM encryption at rest with automatic key management. Your data is secure by default.

🌐

S3-Compatible API

27 fully implemented S3 endpoints. Drop-in replacement for AWS S3 with existing tools and SDKs.

🖥️

Built-in Web Console

Leptos-based WASM UI with no Node.js dependency. Manage buckets, upload files, and monitor storage.

🔄

Object Versioning

Full versioning support with delete markers. Track changes and recover previous versions instantly.

Lifecycle Policies

Automated data management with expiration rules, transitions, and noncurrent version cleanup.

📊

Prometheus Metrics

Production-ready observability with request latencies, storage metrics, and health endpoints.

🔒

TLS & mTLS

Full TLS 1.2/1.3 support with mutual TLS for client certificate authentication. HSTS enabled.

🏢

Air-Gap Ready

Single binary with zero internet dependencies. Perfect for isolated, high-security environments.

🐘

PostgreSQL Backend

Production-grade metadata storage with connection pooling. SQLite for development.

Full AWS S3 API Support

Hafiz implements the complete S3 API specification. Use your existing AWS SDKs, CLI tools, and applications without any code changes.

CreateBucket
DeleteBucket
ListBuckets
HeadBucket
PutObject
GetObject
DeleteObject
HeadObject
ListObjectsV2
CopyObject
Multipart Upload
Object Tagging
Versioning
Lifecycle
Pre-signed URLs
Range Requests
aws-cli
# Configure Hafiz endpoint
aws configure set default.s3.endpoint_url \
    http://localhost:9000

# Create a bucket
aws s3 mb s3://my-bucket

# Upload a file
aws s3 cp ./data.json s3://my-bucket/

# List objects
aws s3 ls s3://my-bucket/
2024-01-15 10:30:00   1024 data.json

# Enable versioning
aws s3api put-bucket-versioning \
    --bucket my-bucket \
    --versioning-configuration Status=Enabled

Modular Crate Design

Clean separation of concerns with independent, testable components

Interface
hafiz-s3-api
hafiz-admin
hafiz-cli
Business Logic
hafiz-auth
hafiz-storage
hafiz-crypto
Data Layer
hafiz-metadata
hafiz-core
Storage
PostgreSQL
SQLite
Filesystem

How Hafiz Compares

See how Hafiz stacks up against other object storage solutions

Feature Hafiz MinIO Ceph RGW
Language Rust Go C++
Single Binary
Air-Gap Ready
Web Console WASM React
Memory Safety Guaranteed GC
SSE Encryption
Object Versioning
Lifecycle Policies
License GPL-3.0 AGPL-3.0 LGPL

Up and Running in Minutes

Get started with Hafiz in just a few commands

1

Download & Install

# Clone the repository
git clone https://github.com/shellnoq/hafiz.git
cd hafiz

# Build with Cargo
cargo build --release
2

Start the Server

# Run Hafiz server
./target/release/hafiz server \
  --access-key admin \
  --secret-key changeme123 \
  --data-dir /var/lib/hafiz
3

Configure AWS CLI

# Set endpoint URL
aws configure set \
  default.s3.endpoint_url \
  http://localhost:9000

# Set credentials
aws configure set aws_access_key_id admin
aws configure set aws_secret_access_key changeme123
4

Start Using

# Create your first bucket
aws s3 mb s3://my-first-bucket

# Upload a file
aws s3 cp myfile.txt s3://my-first-bucket/

# Access Web Console
# Open http://localhost:9000 in browser

Need Enterprise Features?

Get LDAP/AD integration, multi-site replication, priority support, and SLA guarantees with Hafiz Enterprise.

LDAP/Active Directory
Multi-Site Replication
Audit Logging
24/7 Support
Contact Sales