Tauri 2 + Rust + Svelte 5. SFTP via ssh2, FTP via suppaftp. Transfer queue with async worker, SQLite site storage, keychain.
60 lines
1.6 KiB
Markdown
60 lines
1.6 KiB
Markdown
# 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
|
||
- [ ] Горячие клавиши
|