Initial commit: LoFlum FTP/SFTP client

Tauri 2 + Rust + Svelte 5. SFTP via ssh2, FTP via suppaftp.
Transfer queue with async worker, SQLite site storage, keychain.
This commit is contained in:
loki5512344 2026-06-13 12:06:56 +02:00
parent 0f182ab76f
commit 79855585bd
60 changed files with 14532 additions and 18 deletions

60
README.md Normal file
View file

@ -0,0 +1,60 @@
# LoFlum
Современный FTP/SFTP клиент на Tauri 2 + Rust + Svelte 5.
## Стек
- **Tauri 2** — шелл
- **Rust** — протоколы, файловая система, очередь передач
- **Svelte 5** — UI
- **tokio** — async runtime
## Протоколы
| Версия | Протоколы |
|--------|-----------|
| v1 | SFTP, FTP, FTPS |
| v2 | S3, WebDAV |
| v3 | Google Drive, Dropbox |
## Разработка
```bash
# Зависимости
bun install
# Dev режим
bun run tauri dev
# Сборка
bun run tauri build
```
## Зависимости системы
- 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 (вызовы из фронта)
```
## TODO
- [ ] Chunked upload/download с прогресс-событиями
- [x] FTP/FTPS — FTP реализован (FTPS — stub)
- [ ] Site Manager UI
- [x] Диалог нового соединения
- [x] Transfer Queue с воркером и прогресс-событиями
- [ ] Drag & drop
- [ ] Горячие клавиши