Технологичен стек
Пълен списък на технологиите, използвани в Dictaro, с версии и обосновка за избора.
Десктоп клиент (Rust)
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| Език | Rust | Edition 2024 | Производителност, безопасност на паметта, нативни Windows/macOS приложения без runtime |
| GUI framework | egui / eframe | 0.31 | Лек immediate-mode UI, кросплатформен (OpenGL на Windows, Metal/OpenGL на macOS), вграден persistence |
| System tray | tray-icon | 0.19 | Нативна system tray интеграция за Windows/macOS |
| Async runtime | tokio | 1.x | Multi-threaded async I/O за WebSocket, HTTP и auth flow-ове |
| WebSocket клиент | tokio-tungstenite | 0.26 | Async WebSocket с native-tls поддръжка за комуникация с ASR сървъра |
| HTTP клиент | reqwest | 0.12 | Заявки към licensing API (refresh, checkout, portal) с rustls-tls |
| HTTP сървър | axum | 0.8 | Временен localhost сървър за OAuth/checkout callback |
| Междунишкова комуникация | crossbeam-channel | 0.5 | Bounded channels за комуникация между UI и transcription/auth threads |
| Аудио запис (Windows) | wasapi | 0.22 | Нативен Windows Audio Session API за 16 kHz mono capture |
| WAV кодиране | hound | 3.5 | Pure Rust WAV encoder/decoder, работи в паметта без I/O |
| Clipboard | arboard | 3 | Кросплатформен clipboard (Win32 / NSPasteboard) |
| JWT валидация | jsonwebtoken | 9 | RS256 валидация с embedded public key |
| Secure storage | keyring | 3 | Windows Credential Manager / macOS Keychain за JWT токени |
| Сериализация | serde / serde_json | 1 | JSON (де)сериализация за WebSocket и API комуникация |
| Дата/час | chrono | 0.4 | Timezone conversion за device limit retry times |
| Хеширане | sha2 | 0.10 | SHA-256 за state параметър и machine ID |
| Локализация | rust-i18n | 3 | Compile-time i18n, автоматично определяне на системния език |
| Определяне на locale | sys-locale | 0.3 | Определяне на системния език на ОС |
| Версиониране | semver | 1 | Semantic versioning за auto-updater |
| Self-update | self-replace | 1.5 | Подмяна на собствения executable при update |
| CLI аргументи | clap | 4.5 | Парсване на command-line аргументи |
| Regex | regex | 1 | Hallucination филтър за ASR резултати |
| URL encoding | urlencoding | 2 | Кодиране на URL параметри за OAuth flow |
| Browser open | webbrowser | 1 | Отваряне на системния браузър за OAuth/checkout |
| File locking | fs2 | 0.4 | Single-instance enforcement чрез lock файл |
| Image | image | 0.25 | PNG support за tray icon и splash screen |
| Logging | log + env_logger | 0.4 / 0.11 | Structured logging с конфигурируеми нива |
| Lazy init | once_cell | 1 | Global static initialization за server secrets и machine ID |
| Dirs | dirs | 6 | Кросплатформени пътища за конфигурация и данни |
| Win32 API | windows-sys | 0.59 | Hotkeys, window messaging, console control, registry |
| Win resources | winresource | 0.1 | Windows manifest и icon embedding при build |
ASR сървър (Python)
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| Език | Python | 3.x | Богата ML екосистема, бърз прототип |
| Web framework | FastAPI | >=0.115 | Async WebSocket поддръжка, автоматична OpenAPI документация |
| ASGI сървър | Uvicorn | >=0.30 | Висока производителност, поддържа WebSocket |
| ASR модел | NVIDIA NeMo | >=2.4 (nemo_toolkit[asr]) | State-of-the-art ASR модели, оптимизирани за NVIDIA GPU |
| Post-processing LLM | vLLM | NVIDIA container (26.01-py3) | Високопроизводително LLM inference с PagedAttention |
| LLM модел | Gemma 3 12B IT | - | Многоезичен LLM за подобряване на транскрипции |
| GPU framework | CUDA | 12.8.1 | NVIDIA GPU acceleration за ASR и LLM |
| Аудио обработка | soundfile | >=0.12 | Четене на WAV файлове от WebSocket binary данни |
| HTTP клиент | httpx | >=0.27 | Async HTTP за vLLM API и Data Collector |
| Метрики | prometheus-client | >=0.21 | Prometheus метрики за мониторинг на ASR performance |
| Numpy | numpy | latest | Числени операции за аудио обработка |
| File upload | python-multipart | >=0.0.9 | Multipart form parsing (FastAPI dependency) |
| Container base | nvidia/cuda | 12.8.1-cudnn-runtime-ubuntu22.04 | CUDA runtime с cuDNN за inference |
| Reverse proxy | Nginx | alpine | Обединява ASR + Dashboard на единен порт, WebSocket proxy |
Licensing сървър (Go)
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| Език | Go | 1.23 | Висока производителност, лесен deployment (единичен binary), отлична concurrency |
| Web framework | Gin | 1.10 | Бърз HTTP router с middleware support |
| JWT | golang-jwt/v5 | 5.2.1 | RS256 създаване и валидация на JWT токени |
| Database driver | pgx/v5 | 5.7.1 | Висока производителност PostgreSQL driver с connection pooling |
| Migrations | golang-migrate/v4 | 4.18.1 | Автоматични database миграции при стартиране |
| OAuth2 | golang.org/x/oauth2 | 0.30 | Стандартен OAuth2 клиент за Google, Azure, GitHub |
| Stripe | stripe-go/v81 | 81.4.0 | Официален Stripe SDK за checkout, webhooks, portal |
| UUID | google/uuid | 1.6.0 | UUID v4 генериране за потребители и records |
| Session cookies | gorilla/securecookie | 1.1.2 | Подписани, шифровани session cookies за OAuth state |
| Rate limiting | golang.org/x/time/rate | 0.8.0 | Per-IP token bucket rate limiting |
| Password hashing | golang.org/x/crypto/bcrypt | 0.41.0 | Bcrypt за email/password автентикация |
| Prometheus | client_golang | 1.23.2 | Инструментация на HTTP endpoints и бизнес метрики |
| Environment | godotenv | 1.5.1 | Зареждане на .env файлове при development |
Уебсайт
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| SSG framework | Astro | 5.18+ | Fast static site generation с поддръжка на 25 езика |
| CSS framework | Tailwind CSS | 4.2 | Utility-first CSS, бързо прототипиране |
| SEO | astro-seo | 1.1 | Meta tags и Open Graph оптимизация |
| Sitemap | @astrojs/sitemap | 3.7 | Автоматично генериране на sitemap.xml |
| Шрифтове | Inter + JetBrains Mono | 5.x | Системно оптимизирани web fonts |
| Deployment | Cloudflare Pages (Wrangler) | 4.70+ | Zero-config deployment, глобален CDN |
База данни
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| RDBMS | Azure PostgreSQL Flexible Server | 13+ | Managed PostgreSQL с automatic backups, B1ms tier |
| Миграции | golang-migrate | SQL файлове | Декларативни schema миграции, изпълняват се при стартиране на сървъра |
| UUID | gen_random_uuid() | Нативен PG 13+ | UUID генериране без pgcrypto extension (забранен в Azure PostgreSQL) |
Мониторинг
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| Метрики | Prometheus | latest | Time-series БД за system и application метрики |
| Визуализация | Grafana | latest | Дашборди за метрики и логове, Azure AD SSO |
| Логове | Loki | latest | Log aggregation, native Grafana интеграция |
| Log shipper | Promtail | latest | Събиране на Docker контейнер логове за Loki |
| Node метрики | Node Exporter | latest | CPU, RAM, disk, network метрики |
| GPU метрики | DCGM Exporter | 3.3.8-3.6.0 | NVIDIA Data Center GPU Manager -- utilization, температура, памет |
Инфраструктура
| Компонент | Технология | Версия | Обосновка |
|---|---|---|---|
| Контейнеризация | Docker + Docker Compose | latest | Изолация и reproductibility на всички сървърни компоненти |
| Tunnel / Proxy | Cloudflare Tunnels (cloudflared) | latest | Сигурен достъп до LAN ресурси без публични IP адреси или отворени портове |
| DNS | Cloudflare DNS | - | Управление на DNS записи с Proxy (CDN + DDoS protection) |
| Bot protection | Cloudflare Turnstile | - | CAPTCHA-free bot protection на login страницата |
| CDN / Hosting | Cloudflare Pages | - | Static site hosting с глобален CDN и автоматичен deploy |
| Cloud VM | Azure Virtual Machine | - | Licensing API + Monitoring стек, North Europe регион |
| Container Registry | Azure Container Registry | - | Docker image storage (dictaroacr.azurecr.io) |
| Secret storage | Azure Key Vault | - | Централизирано управление на секрети (db-password, JWT keys) |
| Managed Identity | Azure Managed Identity | - | Безпарольна автентикация към Azure ресурси |
Външни услуги
| Компонент | Технология | Предназначение |
|---|---|---|
| Плащания | Stripe | Абонаменти (monthly/annual), Checkout, Customer Portal, Webhooks |
| OAuth - Google | Google Identity Platform | Автентикация чрез Google акаунт |
| OAuth - Microsoft | Azure AD / Microsoft Identity | Автентикация чрез Microsoft акаунт |
| OAuth - GitHub | GitHub OAuth Apps | Автентикация чрез GitHub акаунт |
| Resend | Transactional email -- верификация, password reset | |
| Data storage | Azure Blob Storage | Съхранение на ASR записи (asr-recordings container) |
| Telemetry | Azure Log Analytics | ASR request метрики и анализ |