egui/eframe UI, clean up deps, remove Svelte/Tauri frontend

This commit is contained in:
loki5512344 2026-06-15 21:11:08 +02:00
parent 77c84ba3bd
commit ff9a1b9b4a
37 changed files with 3982 additions and 2704 deletions

View file

@ -1,60 +1,43 @@
# LoFlum
Современный FTP/SFTP клиент на Tauri 2 + Rust + Svelte 5.
![Rust](https://img.shields.io/badge/Rust-000000?style=flat-square&logo=rust&logoColor=white)
![egui](https://img.shields.io/badge/egui-FF5733?style=flat-square&logo=egui&logoColor=white)
![FTP](https://img.shields.io/badge/FTP/SFTP-0078D4?style=flat-square&logo=files&logoColor=white)
![status](https://img.shields.io/badge/status-development-yellow?style=flat-square)
![license](https://img.shields.io/badge/license-GPLv3-blue?style=flat-square)
FTP/SFTP клиент написанный на Rust с UI на egui/eframe.
## Стек
- **Tauri 2** — шелл
- **egui/eframe** — нативный GUI (чистый Rust, без веба)
- **Rust** — протоколы, файловая система, очередь передач
- **Svelte 5** — UI
- **tokio** — async runtime
## Протоколы
| Версия | Протоколы |
|--------|-----------|
| v1 | SFTP, FTP, FTPS |
| v2 | S3, WebDAV |
| v3 | Google Drive, Dropbox |
| Версия | Протоколы |
|--------|-------------------|
| v1 | SFTP, FTP, FTPS |
| v2 | S3, WebDAV |
| v3 | Google Drive, Dropbox |
## Разработка
```bash
# Зависимости
bun install
# Dev режим
bun run tauri dev
# Сборка
bun run tauri build
cargo run
```
## Зависимости системы
- Rust + cargo
- Bun (или npm/pnpm)
- libssh2 (`pacman -S libssh2` на Arch)
- webkit2gtk (`pacman -S webkit2gtk-4.1` на Arch)
## Архитектура
```
src-tauri/src/
├── domain/ — модели данных (Connection, FileEntry, TransferTask, Site)
├── protocols/ — RemoteFs trait + sftp.rs, ftp.rs
├── transfer/ — очередь, воркеры, прогресс
├── storage/ — SQLite (сайты), keychain (пароли)
├── fs/ — локальная ФС + реестр удалённых соединений
└── commands/ — tauri commands (вызовы из фронта)
src/
├── domain/ -- модели данных (Connection, FileEntry, TransferTask, Site)
├── protocols/ -- RemoteFs trait + sftp.rs, ftp.rs
├── transfer/ -- очередь, воркеры, прогресс
├── storage/ -- SQLite (сайты), keychain (пароли)
├── fs/ -- локальная ФС + реестр удалённых соединений
├── ui/ -- egui панели (в разработке)
└── main.rs -- точка входа eframe
```
## TODO
- [ ] Chunked upload/download с прогресс-событиями
- [x] FTP/FTPS — FTP реализован (FTPS — stub)
- [ ] Site Manager UI
- [x] Диалог нового соединения
- [x] Transfer Queue с воркером и прогресс-событиями
- [ ] Drag & drop
- [ ] Горячие клавиши