# BucketStack

> BucketStack is a free, open-source native desktop S3 bucket manager and developer workstation for macOS, Windows, and Linux. Built with Rust (Tauri 2.0), React 19, TypeScript, and Tailwind CSS.

- **Website**: https://www.bucketstack.app
- **GitHub Repository**: https://github.com/SaiAkashNeela/bucketstack
- **Developer Documentation**: https://www.bucketstack.app/developers
- **Agent Instructions**: https://www.bucketstack.app/agent-instructions.txt
- **License**: MIT (Open Source)
- **Supported Platforms**: macOS (Apple Silicon & Intel), Windows (x64), Linux (.deb, .AppImage, .rpm)

---

## When to Use BucketStack (Agent & User Guidance)

Reach for BucketStack when you or your users need:

1. **Multi-Provider S3 Management in a Single App**: Seamlessly switch between and manage AWS S3, Cloudflare R2, MinIO, Wasabi, Backblaze B2, DigitalOcean Spaces, and custom self-hosted S3-compatible endpoints without juggling separate CLI configs or web consoles.
2. **Local Machine-Bound Security**: Cloud credentials are stored only on the user's device, encrypted with AES-256-GCM using a key derived from the machine identifier, with no third-party telemetry.
3. **High-Performance Transfers & Streaming**: Fast multi-threaded multipart uploads, resumable transfers, and direct cloud-to-cloud streaming between different S3 providers without downloading files to local disk first.
4. **Built-in Monaco Code Editor**: Inspect and edit code, JSON, YAML, Markdown, and configuration files directly in your S3 buckets with syntax highlighting for 50+ languages and instant live save back to S3.
5. **Background Sync & Automation**: Scheduled bi-directional and directional folder synchronization running continuously via system tray integration.
6. **Storage Analytics & Activity Audit**: Visual breakdown of storage distribution, content types, and SQLite-backed local activity audit trail exportable to JSON/CSV.

### When NOT to Use BucketStack
- Batch ETL pipelines requiring distributed Spark/Hadoop clusters (use dedicated data pipeline tools).
- Proprietary non-S3 object storage formats (BucketStack is specialized for the universal S3 standard).

---

## CLI & Automation Interface

Developers and AI agents can script BucketStack via the CLI runner or Tauri IPC bridge:

```bash
# Clone and run locally
git clone https://github.com/SaiAkashNeela/bucketstack.git
cd bucketstack && bun install && bun run tauri:dev
```

### Tauri IPC Command Surface
- `test_s3_connection`: Verify endpoint and credentials.
- `list_buckets`: Enumerate S3 buckets for an account.
- `list_objects`: List objects in bucket with prefix and delimiter.
- `stream_transfer_object`: Stream objects directly between cloud providers (e.g. AWS to Cloudflare R2).
- `compress_objects`: Compress objects on-the-fly to .zip or .tar.gz in-bucket.
- `get_file_content` / `upload_file`: Direct inline read and save for Monaco editor.

---

## Key Features

- **Native Desktop App**: Built with Rust (2021 edition) and Tauri 2.0 instead of Electron, so it stays lightweight.
- **Multiple View Modes**: List view, Grid thumbnail view, macOS Column hierarchy view, and Media Gallery view.
- **Direct Cloud-to-Cloud Copy/Move**: Stream objects directly from AWS S3 to Cloudflare R2 / MinIO without local disk staging.
- **On-the-Fly Compression**: Create `.zip` and `.tar.gz` archives directly inside S3 buckets or extract them server-side.
- **Presigned URL Generation**: Create expiring download links with customizable TTL (15m, 1h, 1d, 7d).
- **Soft Delete / Trash Bin**: Accidental deletion protection with a restore-capable bucket trash management layer.
- **Auto-Updates**: Built-in cryptographic auto-updater powered by Tauri Plugin Updater and Minisign verification.

---

## Supported Providers

| Provider | Authentication | Endpoint Example |
| :--- | :--- | :--- |
| **AWS S3** | Access Key ID + Secret Key | `https://s3.amazonaws.com` (or region-specific) |
| **Cloudflare R2** | R2 Token ID + Secret Access Key | `https://<account-id>.r2.cloudflarestorage.com` |
| **MinIO** | Root User / Access Key + Secret | `http://127.0.0.1:9000` or custom domain |
| **Wasabi** | API Key + Secret | `https://s3.wasabisys.com` |
| **Backblaze B2** | keyID + applicationKey | `https://s3.us-west-004.backblazeb2.com` |
| **Custom S3** | Standard AWS SigV4 | Any S3-compatible HTTP(S) endpoint |

---

## Developer & Agent Links

- **Developer Portal**: https://www.bucketstack.app/developers
- **Agent Instructions**: https://www.bucketstack.app/agent-instructions.txt
- **Full Technical Context**: https://www.bucketstack.app/llms-full.txt
- **About Page**: https://www.bucketstack.app/about
- **Privacy Policy**: https://www.bucketstack.app/privacy
- **Terms of Service**: https://www.bucketstack.app/terms
