Multi-profile, never leaks
AWS credentials, S3-compatible endpoints (MinIO, R2, Wasabi, B2). Credentials live in the OS keychain; the WebView never sees them. Profiles validate lazily, auto-retry on auth errors, with opt-in periodic refresh.
Multi-profile ยท keyboard-first ยท rich preview ยท local-first.
# 1. Clone, install, run.
git clone https://github.com/banduk/brows3r
cd brows3r
pnpm install
pnpm tauri devbrows3r is a Tauri 2.x desktop app (macOS / Linux / Windows). The frontend is React 19 + Vite + TypeScript with shadcn/ui and Tailwind v4. The backend is Rust, using the official AWS SDK for S3. Everything that touches credentials or S3 bytes runs server-side; the WebView only sees opaque listings, signed loopback URLs, and progress events.
See Get started for the full tour.
โโโโโโโโโโโโโโโโโ Tauri process โโโโโโโโโโโโโโโโโ
โ WebView (React 19 + Vite + TS) โ
โ - Zustand UI state โ
โ - TanStack Query (short-lived render cache) โ
โ - Monaco ยท Shiki ยท PDF.js (all lazy) โ
โ โ invoke / listen โ
โ โผ โ
โ Rust core โ
โ - profile_manager - cache (SWR) โ
โ - s3_client_pool - transfer_queue โ
โ - capability_cache - resource_locks โ
โ - keychain - settings โ
โ - media_server (loopback, signed tokens) โ
โ โ โ
โ โผ โ
โ aws-sdk-s3 (per-profile, per-region clients) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
AWS S3 / MinIO / R2 / Wasabi / โฆThree load-bearing constraints drive every decision:
Read more in Concepts โ Architecture.