S3 Browser Overview
A focused desktop client for Amazon S3 and S3-compatible object storage
Browse S3 Without the Console
Brows3 turns S3 prefixes and objects into a familiar desktop file-browser workflow. It supports Amazon S3, MinIO, Garage, Cloudflare R2, Wasabi, DigitalOcean Spaces, Backblaze B2, STACKIT Object Storage, and custom S3-compatible endpoints. Direct s3:// paths also work for restricted accounts without broad bucket-list permission.
Start with one bucket and one task
Install the build for your system, connect an AWS profile or an S3-compatible endpoint, and open the bucket or prefix you need. Browse a small folder first, preview a file, then try an upload or download. Read-only credentials are enough when you only need to inspect data; you do not need to make your bucket public.
Use Brows3 for hands-on object management. Keep scheduled backups and repeatable bulk jobs in your automation tools. Storage requests and transfers can still incur provider charges even though the application is free.
Read the S3 setup, installation and troubleshooting FAQWhat's New in v0.2.46
Published
Brows3 0.2.46 release notes
Added
- Image viewer with zoom, pan, previous/next navigation, keyboard controls, and compact rounded controls. Thanks to @antonp2k for the contribution in PR #36.
- Live upload and download speeds, including combined rates in the floating transfer panel. (#35)
- Self-contained crates.io source packaging and dedicated cargo-binstall binaries for macOS Intel/Apple Silicon, Linux x86_64/ARM64, and Windows x64. Cargo-managed builds use Cargo for updates. (#37)
- Experimental Intel/AMD 32-bit Linux Debian installer (
i386, targeting i686). Verified in CI with 90 backend tests and an installed-app startup check. Real-device testing is still outstanding; WebKitGTK 4.1 is required and in-app updates are disabled for this build.
Fixed
- Show confirmation before cancelling transfers, keep transfer tables within the viewport, and put filenames before status.
- Show only active transfer directions in the floating panel, remove the redundant badge, and improve upload/download activity indicators.
- Harden S3 operations, transfer retries and cancellation, credential persistence, cache invalidation, and partial-failure handling.
Changed
- Clarify that
amd64,x86_64, andx64Linux downloads work on both Intel and AMD 64-bit systems. A 32-bit system needs the separatei386installer. - Validate source packaging, binary installation, and startup on all five Cargo release targets before publication.
Predictable Behavior at Scale
- Prefix-Aware Pagination
Normal folder views use S3 prefixes, delimiters, and continuation tokens instead of pre-indexing an entire bucket.
- Bounded Deep Search
Each recursive search is capped at 100 LIST requests, 100,000 scanned objects, and 10,000 matches.
- Accurate Bounded Sorting
Non-default sorting orders the complete selected prefix before pagination, capped at 100 LIST requests or 100,000 entries.
- Targeted Caches
Bucket discovery uses a 30-minute per-profile cache, while bounded sorted views are reused for the current session and invalidated after writes or refreshes.
Desktop Architecture
Rust Core
Handles S3 networking, credentials, bounded search and previews, caching, and multipart transfers.
React + Tauri UI
Provides a native desktop shell with virtualized object listings and paginated IPC between the UI and backend.
App Screenshots
Browse the Brows3 desktop interface across setup, bucket navigation, transfers, and settings.
Start
Profile-first startup screen for connecting S3-compatible storage.
1 / 12
Download S3 Browser - Free
Get Brows3 v0.2.46 for Windows, macOS, or Linux. Downloads below come from the published GitHub release. Updater archives and signatures are available on its release page.
Linux downloads named amd64, x86_64, or x64 work on both Intel and AMD 64-bit systems. They are not AMD-only. A 32-bit system needs a separate x86 (i386/i686) build; it cannot run the 64-bit download. Only available builds are listed below.
The Linux 32-bit Debian package is experimental and targets i686 systems. It requires WebKitGTK 4.1 and manual updates. Real-device testing remains limited; there is no 32-bit Windows installer or Cargo prebuilt binary. Read the 32-bit compatibility notes before installing.
| Platform | Architecture | Type | Action |
|---|---|---|---|
macOS Apple Silicon (ARM64) | Apple Silicon (ARM64) | DMG | DownloadGet |
macOS Intel (x64) | Intel (x64) | DMG | DownloadGet |
Windows x64 | x64 | EXE | DownloadGet |
Windows x64 | x64 | MSI | DownloadGet |
Windows x64 | x64 | Portable ZIP | DownloadGet |
Linux ARM64 | ARM64 | AppImage | DownloadGet |
Linux ARM64 | ARM64 | DEB | DownloadGet |
Linux ExperimentalIntel / AMD 32-bit (x86) | Intel / AMD 32-bit (x86) | DEB | DownloadGet |
Linux Intel / AMD 64-bit (x86_64) | Intel / AMD 64-bit (x86_64) | AppImage | DownloadGet |
Linux Intel / AMD 64-bit (x86_64) | Intel / AMD 64-bit (x86_64) | DEB | DownloadGet |
Install with Cargo
Brows3 is available on crates.io. Build from source with Rust and your platform's native build dependencies. The web interface is included, so Node.js is not required.
cargo install brows3 --locked
brows3Already have cargo-binstall? Download a prebuilt executable instead:
cargo binstall brows3Prebuilt Cargo targets: macOS Apple Silicon and Intel, Linux ARM64 and x86_64 (glibc), and Windows x64. Linux requires GTK 3, WebKitGTK 4.1 and a graphical desktop; Windows requires WebView2. Cargo installs an executable, not an app bundle or desktop shortcut. Update it through Cargo, not the built-in updater. See Cargo prerequisites and usage.
Install with Windows Package Manager
The published package identity is Brows3Team.Brows3. Microsoft's catalog can briefly lag behind a new GitHub release while its validation and indexing complete.
winget install --exact --id Brows3Team.Brows3View the public Winget package | View the v0.2.46 release manifest
System requirements
- macOS 10.15 or later
- Windows 10 or later
- Linux with GTK 3.24 or later and WebKitGTK 4.1
View release notes, updater signatures, and every published asset on GitHub Releases
S3 Browser Features
Current capabilities and operating boundaries in Brows3 v0.2.46
Bucket, Object and Transfer Management
- Bucket Management
Create buckets, edit JSON bucket policies and delete empty buckets from All Buckets. Deletion requires the bucket name, and switching profiles dismisses pending actions.
- Bucket and Folder Favorites
Save bucket roots and folders for quick access. Favorites and pending object operations stay associated with their original profile.
- Prefix and Breadcrumb Navigation
Browse delimiter-based S3 folders, open direct s3:// paths, and move quickly through known prefixes.
- Bulk and Recursive Operations
Upload, download, copy, move, and delete files or folders with queue progress and cancellation controls.
- Large Multipart Uploads
Use adaptive multipart transfers from 100 MiB upward with bounded memory, retryable parts, progress reporting, and cleanup after cancellation or failure.
- Content-Type Control
Infer MIME types from object names and edit a validated free-form Content-Type without discarding supported metadata, tags, headers, security fields, or ACL grants.
- Object Permissions
Read and update object ACL grants and apply canned ACLs recursively where the provider and bucket support ACLs.
- Presigned URL Sharing
Generate temporary object links with a configurable expiry from the bucket view.
Previews and Editing
- Built-in Monaco Editor
Edit text, JSON, YAML, and code objects directly in S3. Saves detect concurrent edits and preserve existing object attributes.
- Configurable Bounded Text Previews
Choose a persisted text preview limit from 1 to 100 MB (2 MB by default). The Rust backend streams and enforces the exact bound.
- Streamed Media Previews
Preview images, audio, video, and PDFs through presigned URLs without loading the full object into the text-preview memory allowance.
Profiles and Credentials
- Manual, Shared, SSO, and Custom Endpoint Profiles
Connect with access keys, system AWS profiles, IAM Identity Center sessions, or S3-compatible endpoint credentials.
- AWS IAM Identity Center Sign-In
Recognize SSO profiles, resolve cached SDK credentials, and launch an exact-profile AWS CLI v2 sign-in when a session expires.
- Native Credential Storage
Use macOS Keychain, Windows Credential Manager, or Linux Secret Service. Portable mode and keychain failures use the documented local secrets.json fallback.
- Profile-Isolated Transfer Queues
Every queued transfer retains the profile that created it, so switching accounts cannot change the credentials used by an existing job.
- S3-Compatible Endpoint Routing
Custom endpoints and shared profiles with endpoint_url use path-style addressing and compatibility checksum behavior.
Performance with Explicit Limits
- Prefix-Aware Pagination
Normal folder listings use S3 prefixes, delimiters, and continuation tokens rather than a full-bucket background index.
- Bounded Deep Search
Scan up to 100,000 objects with at most 100 LIST requests and return at most 10,000 matches per search.
- Complete-Prefix Sorting
Order non-default views before pagination, capped at 100 LIST requests or 100,000 entries.
- Targeted Bounded Caching
Cache bucket discovery for 30 minutes per profile and reuse bounded sorted views during the session, with invalidation after writes and refreshes.
- Virtualized Object Table
Render only the visible rows so large loaded listings remain responsive.
Reliability and Updates
- Readable Backend Errors
Command failures cross the Tauri boundary as human-readable messages instead of JavaScript object placeholders.
- Safe Recursive Downloads
Reject traversal, absolute, rooted, drive-prefixed, and null-containing object-key paths before writing locally.
- Signed Update Metadata
Check for updater-signed desktop releases and review available versions from Settings or startup.
- System Monitor
Inspect request success and failure counts plus application logs when diagnosing provider behavior.
Limits and Caching
The active data paths and safety limits in Brows3 v0.2.46
| Area | Behavior | Boundary |
|---|---|---|
| Folder browsing | S3 prefix and delimiter listing with continuation-token pagination | Loads the selected prefix. No background full-bucket index |
| Current-folder filter | Filters the folder results already loaded in the UI | Does not issue a recursive bucket scan |
| Deep search | Recursively lists the selected bucket or prefix | 100 LIST requests, 100,000 scanned objects, 10,000 matches |
| Non-default sorting | Orders the complete selected prefix before pagination | 100 LIST requests or 100,000 entries |
| Caching | Caches bucket discovery and bounded complete-prefix sorted views | 30-minute bucket TTL. The sorted-view session cache is capped and invalidated after writes |
| Text preview | Streams text through the Rust backend before returning it to the WebView | User-configurable limit from 1 to 100 MB, enforced even without reliable object metadata |
| Large uploads | Uses adaptive S3 multipart upload from 100 MiB upward | One part in memory, up to the S3 10,000-part limit, with abort cleanup |
S3 LIST requests can incur provider charges. The limits above bound a single deep search or complete-prefix sort. Normal folder browsing remains paginated.
Architecture
How Brows3 keeps S3 work responsive and bounded
Brows3 does not pre-index a complete bucket. It combines prefix-aware S3 requests, explicit scan limits, targeted caches, and a virtualized desktop UI.
- 1. Rust Core
Owns S3 networking, credential resolution, bounded search and previews, multipart transfers, local path validation, and write-side cache invalidation.
- 2. Prefix-Aware S3 Pagination
Lists the selected folder with prefixes, delimiters, and continuation tokens. Recursive search and non-default sorting have request and object caps.
- 3. Targeted Caches
Caches per-profile bucket discovery for 30 minutes and bounded complete-prefix sorted views for the current session. It never creates an unbounded full-bucket tree.
- 4. Paginated IPC and Virtualized React UI
Moves structured pages between Rust and the WebView while rendering only visible table rows to avoid blocking the interface.
- 5. Native Tauri Shell
Packages the same desktop experience for macOS, Windows, and Linux while using each platform's native credential service when available.
Build Guide
Build from source for your platform
Prerequisites (All Platforms)
- Node.js v22+ and pnpm
The release repository currently declares pnpm 11.2.2
- Rust 1.97.1
Matches the toolchain used by the release validation workflow
Windows Setup
1. Install Rust
Download and run the installer from rustup.rs or run in PowerShell:
winget install Rustlang.Rustup2. Restart your terminal
Restart your terminal to refresh the PATH
3. Select and verify the release toolchain
rustup toolchain install 1.97.1
rustup default 1.97.1
cargo --version
rustc --version4. Clone and run
git clone https://github.com/rgcsekaraa/brows3.git
cd brows3
pnpm install --frozen-lockfile
pnpm tauri devmacOS Setup
1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustup toolchain install 1.97.1
rustup default 1.97.12. Install Xcode Command Line Tools
xcode-select --install3. Clone and run
git clone https://github.com/rgcsekaraa/brows3.git
cd brows3
pnpm install --frozen-lockfile
pnpm tauri devLinux Setup
1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustup toolchain install 1.97.1
rustup default 1.97.12. Install system dependencies (Debian/Ubuntu)
sudo apt update
sudo apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf3. Clone and run
git clone https://github.com/rgcsekaraa/brows3.git
cd brows3
pnpm install --frozen-lockfile
pnpm tauri devRelease Build (All Platforms)
pnpm tauri buildContributing
Join the open source community
We welcome contributions from the community! Whether you are a Rustacean, a React developer, or a technical writer, your help is appreciated.
Maintainers
How to Contribute
- 1. Check the Issues
Look for "good first issue" labels on GitHub
- 2. Standard Workflow
Fork → Branch → Commit → Pull Request
- 3. Code Quality
Ensure Rust code is formatted with cargo fmt and TS code with pnpm lint
Feature Request
Help us improve Brows3 by sharing your ideas
Your request will be reviewed by our development team. We may reach out to your email for additional details.
