现代化的兰空图床桌面客户端,基于 Tauri 2 + React + TypeScript 构建。
- 🚀 现代化 UI - 基于 React + Tailwind CSS 自建组件库
- 🎨 深色/浅色主题 - 支持主题切换(浅色/深色/跟随系统)
- 📁 拖拽上传 - 支持拖拽文件上传
- ⚡ 批量上传 - 支持并发上传控制、断点续传
- 📊 进度显示 - 实时显示上传进度
- 📋 历史记录 - 查看上传历史、导出 CSV
- 🖼️ 图片管理 - 列表/网格视图、搜索筛选、批量编辑/删除、标签管理
- 📁 相册管理 - 创建/编辑/删除相册、管理相册标签
- 💻 双模式 - 支持 Tauri 桌面端和浏览器 Web 模式
- 🌐 跨平台 - 支持 Windows 和 Linux
- 前端: React 18 + TypeScript + Vite
- UI: Tailwind CSS + 自建组件库(类 shadcn/ui 风格)
- 桌面框架: Tauri 2
- 图标: Lucide Icons
- 路由: React Router 6
- 后端: Node.js IPC 服务(Tauri 模式)
- Node.js 18+
- pnpm
- Rust 工具链(Tauri 打包需要)
- Linux 系统依赖(见下方)
# Ubuntu/Debian
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev librsvg2-dev patchelf libssl-dev libglib2.0-dev libayatana-appindicator3-dev
# 安装 Rust(如未安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
# Tauri CLI(已内置在依赖中,无需单独安装)
# 项目通过 @tauri-apps/cli 管理,直接用 pnpm 命令即可pnpm installpnpm devpnpm tauri dev# 浏览器模式(Web)
pnpm dev
# Tauri 桌面模式
pnpm tauri dev
⚠️ 必须使用pnpm tauri build,不能直接用cargo build。pnpm tauri build会依次执行:前端构建 → Rust 编译 → 生成安装包。仅cargo build只编译二进制,不会生成.deb/.AppImage等安装包。
# 构建前端 + 编译 Rust + 打包安装包
pnpm tauri build打包产物位置:
- Linux:
src-tauri/target/release/bundle/deb/(.deb)、bundle/rpm/(.rpm)、bundle/appimage/(.AppImage) - Windows:
src-tauri/target/release/bundle/nsis/(.exe)
Tauri 支持通过 cargo-xwin 在 Linux 上交叉编译 Windows 应用(仅生成 NSIS .exe 安装包,不支持 .msi)。
# 1. 安装系统依赖(lld 链接器 + llvm + clang-cl 编译器 + makensis)
sudo apt update && sudo apt install -y lld llvm clang nsis
# 2. 安装 Windows Rust 目标
rustup target add x86_64-pc-windows-msvc
# 3. 安装 cargo-xwin
cargo install --locked cargo-xwin
# 4. 构建 Windows 版本
pnpm tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc产物位于 src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/。
注意: 首次构建时 cargo-xwin 会自动下载 Windows SDK(约几百 MB),可用
XWIN_CACHE_DIR环境变量指定缓存目录。macOS 打包需在 macOS 上构建(不支持交叉编译到 macOS)。
lsky-studio/
├── src/ # React 前端
│ ├── components/ # 组件
│ │ ├── layout/ # 布局组件(AppLayout, Sidebar, Titlebar)
│ │ ├── shared/ # 共享业务组件
│ │ └── ui/ # 基础 UI 组件库
│ ├── features/ # 功能模块
│ │ ├── dashboard/ # 仪表盘
│ │ ├── upload/ # 上传
│ │ ├── history/ # 历史记录
│ │ ├── photos/ # 图片管理
│ │ ├── album/ # 相册管理
│ │ └── settings/ # 设置
│ ├── hooks/ # 自定义 Hooks
│ ├── lib/ # 工具函数、API 封装
│ └── styles/ # 样式文件
│
├── src-tauri/ # Tauri 后端
│ ├── src/
│ │ ├── main.rs # 入口文件
│ │ └── lib.rs # 核心逻辑
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
│
├── node-ipc/ # Node.js IPC 后端服务
├── docs/ # 项目文档
├── package.json
├── vite.config.ts
├── tailwind.config.ts
└── tsconfig.json
- 服务状态监控
- 最近上传记录
- 快速操作入口
- 拖拽上传
- 批量上传
- 并发控制
- 进度显示
- 断点续传
- 列表/网格双视图
- 搜索筛选(关键字、公开状态、排序)
- 单图编辑(名称、简介、公开状态、标签)
- 批量编辑/删除
- 图片详情查看(大图预览)
- 复制链接/打开原图
- 创建/编辑/删除相册
- 相册封面展示
- 相册标签管理
- 上传历史查看
- 状态筛选(成功/失败)
- 导出 CSV
- API 配置
- 存储策略选择
- 上传参数配置
- 主题切换
MIT License
蜀枕清何