Rust Telegram Watchlist Orchestrator
Medya izleme listelerini yöneten, rastgele öneri motoruna ve flat-file veri kalıcılığına sahip, Rust ile yazılmış asenkron bir Telegram botu.
Teknoloji yığını
- Diller
Performans & metrikler
- Uzak veritabanı bağlantılarının getirdiği ağ gecikmeleri (network latency) tamamen ortadan kaldırılarak, durum okuma/yazma işlemleri disk I/O hızına indirgendi
- Kayıt ekleme aşamasındaki duplicate kontrolü için
HashSetkullanılarak iterasyon maliyetleri düşürüldü ve CPU cycle'ları minimize edildi
Neden geliştirdim?
Akıllı TV'de içerik tüketirken izleme kaydı tutma (logging) zorluğunu çözmek için tasarlandı. Hantal TV kumandaları veya kompleks web arayüzleri yerine, state yönetimini Telegram üzerinden dışa açarak kullanıcının mobil cihazından anında kayıt tutmasını ve öneri almasını sağladım. Operasyonel yükü (RDBMS bakımını) sıfıra indirmek için mimari, statik olarak derlenmiş bağımlılıksız bir Rust binary'si ve flat-file depolama üzerine kurgulandı.
Mimari & kararlar
Sistem, Telegram API kancaları (bindings) için teloxide framework'ü ve tokio asenkron runtime'ı üzerine inşa edilmiştir. State kalıcılığı flat-file disk I/O ile sağlanır. Tekilleştirme işlemlerini (deduplication) optimize etmek için dosya içerikleri belleğe std::collections::HashSet olarak yüklenir, bu sayede yeni eklemeler O(1) karmaşıklığında denetlenir. Mutasyon sonrası state leksikografik olarak sıralanıp diske yazılır (flush). Ayrıca, Telegram'ın katı 4096 byte'lık mesaj sınırını aşmak için payload'ları dinamik olarak bölen özel bir string buffer algoritması (send_long_message) entegre edilmiştir.
Temel özellikler
- 01
teloxideREPL mimarisi üzerinden yürütülen asenkron komut yönlendirmesi (routing ve dispatch) - 02
HashSettabanlı O(1) tekilleştirme ve otomatik sıralama sunan lokal flat-file state kalıcılığı - 03Telegram API payload limitlerini by-pass etmek için geliştirilmiş dinamik chunking algoritması
- 04Hatalı veya eksik kullanıcı girdilerini tolere edip öneri sunan alt-dize (sub-string) çözümleme mekanizması