# Статус зависимостей Backend

*Последнее обновление: январь 2025*

## Основные зависимости

### Runtime и Framework
| Зависимость | Текущая версия | Последняя версия | Статус | Примечания |
|-------------|----------------|------------------|--------|------------|
| Rust | 1.81.0+ | 1.81.0 | ✅ Актуально | Стабильная версия |
| Tauri | 2.6 | 2.6.2 | ✅ Обновлено | Обновлено до 2.6 |
| tauri-build | 2.0 | 2.0.0 | ✅ Обновлено | Стабильная версия |

### Tauri Plugins
| Плагин | Версия | Статус |
|--------|--------|--------|
| tauri-plugin-log | 2 | ✅ |
| tauri-plugin-notification | 2 | ✅ |
| tauri-plugin-fs | 2 | ✅ |
| tauri-plugin-dialog | 2 | ✅ |
| tauri-plugin-websocket | 2 | ✅ |
| tauri-plugin-opener | 2.2.7 | ✅ |
| tauri-plugin-store | 2 | ✅ |
| tauri-plugin-global-shortcut | 2 | ✅ |

### Медиа обработка
| Зависимость | Версия | Статус | Примечания |
|-------------|--------|--------|------------|
| ffmpeg-next | 7.0 | ✅ | Последняя версия, требует FFmpeg 7.0+ |
| image | 0.24 | ⚠️ | Доступна 0.25 с улучшениями производительности |

### Асинхронность и параллелизм
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| tokio | 1.0 (full) | ✅ |
| futures | 0.3 | ✅ |
| async-trait | 0.1 | ✅ |
| parking_lot | 0.12 | ✅ |

### HTTP и Networking
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| axum | 0.7 | ✅ |
| reqwest | 0.11 | ✅ |
| tower | 0.4 | ✅ |
| tower-http | 0.5 | ✅ |
| hyper | 0.14 | ✅ |

### Безопасность
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| aes-gcm | 0.10 | ✅ |
| argon2 | 0.5 | ✅ |
| keyring | 2.3 | ✅ |
| rand | 0.8 | ✅ |
| sha2 | 0.10 | ✅ |

### Сериализация
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| serde | 1.0 | ✅ |
| serde_json | 1.0 | ✅ |
| base64 | 0.22.1 | ✅ |

### Machine Learning
| Зависимость | Версия | Статус | Примечания |
|-------------|--------|--------|------------|
| ort | 2.0.0-rc.10 | ✅ | ONNX Runtime 1.22.0 |
| ndarray | 0.15 | ✅ | |

### Мониторинг и телеметрия
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| opentelemetry | 0.27 | ✅ |
| opentelemetry_sdk | 0.27 | ✅ |
| opentelemetry-otlp | 0.27 | ✅ |
| prometheus | 0.14.0 | ✅ |
| tracing | 0.1 | ✅ |

### WebAssembly
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| wasmtime | 28.0 | ✅ |
| wasmtime-wasi | 28.0 | ✅ |
| wasm-bindgen | 0.2 | ✅ |

### Утилиты
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| uuid | 1.0 | ✅ |
| chrono | 0.4 | ✅ |
| regex | 1.0 | ✅ |
| dashmap | 5.0 | ✅ |
| once_cell | 1.19 | ✅ |
| anyhow | 1.0.98 | ✅ |
| dirs | 5.0 | ✅ |
| md5 | 0.7 | ✅ |
| sys-locale | 0.3.1 | ✅ |
| log | 0.4 | ✅ |

### Type Generation
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| specta | 2.0.0-rc.21 | ✅ |
| specta-typescript | 0.0.9 | ✅ |
| tauri-specta | 2.0.0-rc.21 | ✅ |

### Dev Dependencies
| Зависимость | Версия | Статус |
|-------------|--------|--------|
| ctor | 0.2 | ✅ |
| env_logger | 0.10 | ✅ |
| tempfile | 3.8 | ✅ |
| urlencoding | 2.0 | ✅ |
| criterion | 0.5 | ✅ |
| httpmock | 0.7 | ✅ |

## 📊 Сводка

- **Всего зависимостей**: 50+
- **Актуальных**: 48 (96%)
- **Требуют обновления**: 1 (image)
- **Критических уязвимостей**: 0

## ✅ Выполненные обновления (январь 2025)

1. **Tauri 2.5 → 2.6**
   - Улучшения производительности
   - Исправления безопасности
   - Новые API для мобильных платформ

2. **tauri-build 2.0.0-rc.13 → 2.0**
   - Переход на стабильную версию
   - Полная совместимость с Tauri 2.6

## 🔄 Рекомендации по обновлению

### Высокий приоритет
1. **image 0.24 → 0.25**
   - Улучшенная производительность декодирования (~20% быстрее)
   - Поддержка новых форматов (AVIF, JXL)
   - Лучшая работа с памятью
   ```bash
   cargo update -p image
   ```

### Средний приоритет
- Следить за обновлениями безопасности криптографических библиотек
- Мониторинг новых версий FFmpeg bindings при выходе FFmpeg 8.0

### Низкий приоритет
- Рассмотреть миграцию с `once_cell` на `std::sync::OnceLock` (Rust 1.70+)
- Следить за развитием Tauri 3.0 (планируется в 2025)

## 🔒 Безопасность

### Автоматическая проверка
```bash
# Проверить уязвимости
cargo audit

# Проверить устаревшие зависимости
cargo outdated

# Обновить до последних совместимых версий
cargo update

# Проверить лицензии
cargo license
```

### Критические зависимости для мониторинга
- **aes-gcm** - шифрование API ключей
- **argon2** - хеширование паролей
- **keyring** - доступ к системным хранилищам
- **reqwest** - TLS/SSL соединения

## 📈 Метрики зависимостей

### Размер зависимостей
```bash
# Анализ размера зависимостей
cargo bloat --release --crates

# Топ 10 самых больших зависимостей:
1. ffmpeg-next (~15MB)
2. wasmtime (~10MB)
3. ort (~8MB)
4. opentelemetry (~5MB)
5. axum (~3MB)
```

### Время компиляции
- Clean build: ~5-7 минут
- Incremental: ~30-60 секунд
- Release build: ~10-15 минут

## 🚀 Оптимизации

### Cargo.toml оптимизации
```toml
[profile.release]
lto = "fat"          # Link-time optimization
codegen-units = 1    # Лучшая оптимизация
strip = true         # Удаление debug символов
opt-level = 3        # Максимальная оптимизация
```

### Параллельная компиляция
```bash
# Использовать все ядра
export CARGO_BUILD_JOBS=$(nproc)

# Или в .cargo/config.toml
[build]
jobs = 8
```

## 📝 Примечания

1. **Версионирование Tauri**: Все плагины должны соответствовать мажорной версии Tauri
2. **FFmpeg совместимость**: ffmpeg-next 7.0 требует системную библиотеку FFmpeg 7.0+
3. **ONNX Runtime**: Версия привязана к конкретным моделям YOLO
4. **Parking lot**: Не обновлять выше 0.12 без тестирования (проблемы с деструкторами)
5. **WebAssembly**: wasmtime обновляется часто, но требует тестирования плагинов

## 🔗 Полезные ссылки

- [Cargo Security Advisories](https://rustsec.org/)
- [Tauri Security](https://github.com/tauri-apps/tauri/security)
- [Rust Release Notes](https://github.com/rust-lang/rust/releases)
- [Dependency Dashboard](https://deps.rs/repo/github/chatman-media/timeline-studio)

---
*Автоматическое обновление статуса через GitHub Actions каждую неделю*