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:
parent
0f182ab76f
commit
79855585bd
60 changed files with 14532 additions and 18 deletions
60
README.md
Normal file
60
README.md
Normal 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
|
||||
- [ ] Горячие клавиши
|
||||
Loading…
Add table
Add a link
Reference in a new issue