Masaüstü Uygulamaları
Açık Kaynak

Lain Wave: Çevrimdışı Yüksek Çözünürlüklü (FLAC) Müzik Oynatıcı

RustTypeScriptSQLTauriSvelteKitTailwind CSSrusqliteyt-dlpFFmpegWhisper AI (whisper_rs)Discord RPC

Abonelik gerektirmeyen, tamamen lokal bellek üzerinde çalışan ve yüksek çözünürlüklü (FLAC) medya arşivlemeye odaklanan, Tauri ve SvelteKit tabanlı masaüstü dijital müzik kütüphanesi.

Teknoloji Yığını

RustTypeScriptSQLTauriSvelteKitTailwind CSSrusqliteyt-dlpFFmpegWhisper AI (whisper_rs)Discord RPC

Sistem Metrikleri

Medya dönüştürme ve I/O işlemleri Tokio thread havuzlarına (thread pool) devredilerek SvelteKit arayüzünün 60 FPS akıcılığı garanti altına alınmıştır
Whisper model çıkarımı (inference) için RAM'i yormayan, donanım ivmeli (C++ GGML tabanlı) düşük seviyeli yürütme kullanılmıştır
Veritabanı bağlantıları bellekte (in-memory) önbelleklenerek (caching), binlerce FLAC dosyası içeren devasa arşivlerde bile anında arama/filtreleme sağlanır

Bunu Neden İnşa Ettim?

"Modern müzik dinleme alışkanlıkları (Spotify, Apple Music vb.) tamamen bulut tabanlı, DRM kilitli ve abonelik gerektiren bir ekosisteme hapsolmuş durumda. Lain Wave'i bu sisteme bir alternatif olarak geliştirdim. Temel amaç; internet bağlantısına ihtiyaç duymayan, kullanıcının kendi verisi üzerinde tam kontrol sahibi olduğu, telemetrisiz, 100% ücretsiz ve sesi kayıpsız (FLAC) formatta yerel diskte saklayan yüksek performanslı bir arşivleme motoru inşa etmekti."

Mimari & Kararlar

Uygulama, SvelteKit dosya tabanlı yönlendirme motoru (`/playlist/[id]`, `/artist/[name]`) ile Tauri'nin Rust arka ucunu birleştirir. Veritabanı katmanı, eşzamanlı okuma/yazma güvenliği için `Arc<Mutex<Connection>>` ile sarmalanmış `rusqlite` kullanır. YouTube'dan medya indirme ve dönüştürme işlemleri, Tauri'nin ana olay döngüsünü (event loop) bloklamamak adına `tauri::async_runtime::spawn_blocking` görevleri içine izole edilmiştir. `yt-dlp` ve `FFmpeg` doğrudan `std::process::Command` üzerinden `stdout` borulama (piping) ile kontrol edilirken, Windows ortamlarında CMD pencerelerinin görünmesini engellemek için `0x08000000` oluşturma bayrakları (creation flags) inject edilmiştir. Uygulama içi asenkron şarkı sözü oluşturma işlemi, bulut API'leri yerine yerel makinede çalışan C++ GGML modelini (`whisper_rs` binding'i üzerinden) kullanır.

Temel Özellikler

  • 01.YouTube üzerinden tam asenkron medya indirme, ID3 tag manipülasyonu ve FLAC formatında yerel depolama
  • 02.Yerel sistem kaynaklarını kullanarak çalışan Whisper AI entegrasyonu ile otomatik SRT (altyazı/şarkı sözü) senkronizasyonu
  • 03.Thread-safe SQLite mimarisi ile ultra hızlı yerel kütüphane, sanatçı ve çalma listesi (playlist) yönetimi
  • 04.Donanım düzeyinde entegre edilmiş global medya kısayol tuşları (`tauri_plugin_global_shortcut`)
  • 05.Gelişmiş asenkron durum yönetimi (state management) ile Discord Rich Presence (RPC) entegrasyonu
Bu proje, bağımlılıkları en aza indirilmiş 'local-first' (önce yerel) bir mimarinin gücünü gösterir. Uygulama, dışarıdan hiçbir sunucuya (YouTube scraping işlemi hariç) istek atmaz. İndirilen ham ses verisi `hound` kütüphanesi ile `pcm_s16le` formatına çevrilerek doğrudan Whisper modeline beslenir. SQLite veritabanındaki JSON tabanlı yedekleme/geri yükleme senaryolarında, transaction tabanlı bulk-insert algoritmaları kullanılarak veri tutarlılığı (ACID uyumluluğu) en üst düzeye çıkarılmıştır.