Warning
Development Status: This project is currently in MVP/Beta. It is still improving compatibility and vendor-specific support. Feedback and bug reports and PRs are very welcome!
Can is a modern cross-platform desktop client for S3-compatible object storage.
Built with Wails and React, it offers a sleek and consistent user experience across multiple cloud providers.
English | 简体中文
- Multi-Vendor Support: Works with AWS S3, Aliyun OSS, Tencent COS, Cloudflare R2, and other S3-compatible services.
- Sleek UI: A modern, clean interface for browsing and managing objects.
- Fully Local: No intermediate servers involved. Your data and configurations are stored in a local SQLite database.
- Consistent UX: Enjoy the same experience on macOS, Windows, and Linux.
- Simple Setup: No complex configuration required—just connect and start managing.
- Backend: Go + Wails
- Frontend: React + TypeScript + Vite + Tailwind CSS + shadcn/ui + TanStack
- Storage: SQLite
--- config: layout: dagre --- flowchart TB User["User"] subgraph Frontend["Frontend Layer<br>"] Desktop["Desktop Application<br>(Powered by Wails)"] end subgraph Backend["Backend Service"] Config["App Config<br>(Module)"] Logic["App Data or<br>Other Business Logic<br>(Module)"] S3Service["S3 Service<br>(Module)"] end subgraph UnifiedInterface["Unified Interface Layer"] AWSSDK["AWS S3 SDK<br>(Standard Interface)"] VendorSDK["Vendor Specific Features<br>(Custom SDK Powered)"] end subgraph Providers["Cloud Storage Providers"] CF["Cloudflare R2"] AliOSS["Alibaba Cloud OSS"] QiNiu["Qiniu Kodo"] TencentCOS["Tencent Cloud COS"] AWSS3["AWS S3"] Minio["MinIO"] Other["Other S3 Compatible<br>Services"] end User <-- Interact --> Desktop Desktop <-- API Calls --> Backend %% Config -. Configuration .- S3Service %% Logic -. Business Logic .-> S3Service S3Service -- Uses --> UnifiedInterface AWSSDK -- S3 Compatible API --> CF & AliOSS & QiNiu & TencentCOS & Minio & Other AWSSDK -- Native API --> AWSS3 VendorSDK -. Vendor Specific Features .-> CF & AliOSS & QiNiu & TencentCOS & Other User:::userStyle Desktop:::frontendStyle Config:::backendStyle Logic:::backendStyle S3Service:::backendStyle AWSSDK:::interfaceStyle VendorSDK:::interfaceStyle CF:::providerStyle AliOSS:::providerStyle QiNiu:::providerStyle TencentCOS:::providerStyle AWSS3:::providerStyle Minio:::providerStyle Other:::providerStyle classDef userStyle fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000 classDef frontendStyle fill:#fff9c4,stroke:#f57c00,stroke-width:2px,color:#000 classDef backendStyle fill:#f5f5f5,stroke:#616161,stroke-width:2px,color:#000 classDef interfaceStyle fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000 classDef providerStyle fill:#ffe0b2,stroke:#e64a19,stroke-width:2px,color:#000 - Go: Version 1.24 or higher.
- Node.js: Version 22 or higher.
- pnpm: Recommended package manager for frontend dependencies.
Please read CONTRIBUTING.md for more details on how to contribute.
-
Clone the repository
git clone https://github.com/100gle/can.git cd can -
Let wails setup everything for you
wails dev
the wails command will include the following steps:
- install dependencies
- build the application
- run the application
The application will be running in development mode with hot reloading.
- Some tools for development
- Run backend tests:
go test ./... - Run frontend code quality:
- lint:
pnpm --dir frontend lint - format:
pnpm --dir frontend format
- lint:
Distributed under the Apache License 2.0. See LICENSE for more information.


