Skip to content
/ can Public

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.

License

Notifications You must be signed in to change notification settings

100gle/can

Repository files navigation

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

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 | 简体中文


Home Page
📸 More Screenshots (List View, Dark Mode, Tree View)
List View List View (Dark Mode) Tree View

Features

  • 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.

Tech Stack

  • Backend: Go + Wails
  • Frontend: React + TypeScript + Vite + Tailwind CSS + shadcn/ui + TanStack
  • Storage: SQLite

Architecture

---
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
Loading

Contribution

Prerequisites

  • 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.

Development

  1. Clone the repository

    git clone https://github.com/100gle/can.git
    cd can
  2. 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.

  1. Some tools for development
  • Run backend tests: go test ./...
  • Run frontend code quality:
    • lint: pnpm --dir frontend lint
    • format: pnpm --dir frontend format

License

Distributed under the Apache License 2.0. See LICENSE for more information.

About

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.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published