macOS için Telegram istemcisinin yeni bir açık repository'si var: TelegramMessenger/telegram-macos GPL-2.0 lisansı altında. Önceki overtake/TelegramSwift repository'si 29 Temmuz 2025'ten beri commit almamıştı ve güncel bir istemci derlemek mümkün değildi. Onunla birlikte, Rust ile yazılmış MTProto ağ motoru da açıldı: kodu ayrı bir repository'de bulunuyor ve eski motorla karşılaştırması ile denetimi istemci belgelerinde yer alıyor. Telegram bu motoru, hem iOS hem de macOS için eski kütüphanenin yerine hazırlıyor. Bu durum öncelikle üçüncü taraf istemci geliştiricilerini ve macOS beta kanalında olanları ilgilendiriyor: beta sürümünde motor manuel olarak etkinleştirilebiliyor.

Repository'de Neler Var

Repository bağlantısı 23 Ekim saat 07:18 UTC'de istemcinin beta test kullanıcıları sohbetinde yayınlandı. Repository'nin kendisi 9 Ekim'de farklı bir adreste, macosswift/telegram olarak oluşturulmuştu: GitHub şimdi oradan yeni adrese yönlendiriyor ve README hala eski adrese referans veriyor. «Initial commit» 20 Ekim tarihli, README'deki son düzenleme 22 Ekim'de yapıldı. Repository'de toplam 8.605 dosya bulunuyor, neredeyse tüm arayüz packages/ klasöründeki 156 Swift paketine dağıtılmış durumda.

Telegram-Mac/Info.plist içindeki derleme numarası — 283305. Bu, 9 Ekim tarihli 13.0.283305 beta sürümü, yani açık kaynak kodu, 23 Ekim akşamına kadar 13.1.0.283366'ya ulaşan beta sürümünden iki hafta geride. 8 Ekim'den beri beta sürümünde HTML ve JavaScript ile mesajları çizen HTMLBubbles modülü açık kaynak kodunda bulunmuyor.

Derleme talimatları Xcode 16 veya daha yenisini ve Rust setini gerektiriyor. iOS ile ortak kod (TelegramCore, Postbox) submodules/telegram-ios alt modülü olarak bağlanıyor. .gitmodules içinde bunun için GitLab adresi belirtilmiş, ancak 9 Ekim tarihli gerekli 5bb60920e2 commit'i herkese açık Telegram-iOS içinde de mevcut. Fork'lar için kurallar aynı: kendi API ID'nizi alın, fork'a Telegram adını vermeyin, markalı logoyu kullanmayın ve GPL'nin gerektirdiği şekilde kodu yayınlayın.

Repository Yapay Zeka Ajanları İçin Tasarlandı

Kök dizinde, "bu repository'de kod yazan ajanlar için" bir kılavuz olan AGENTS.md yer alıyor. Bu kılavuzda kod kuralları, modül haritası ve beta sürümünün yayınlanma sırası açıklanıyor: derleme, değişiklikler beta dalına gönderildiğinde ve CFBundleVersion numarası artırıldığında başlıyor. //TODOLANG gibi hizmet etiketleri dışında kodda yorumlar yasaktır. CLAUDE.md tek bir satırdan ve AGENTS.md'ye bir bağlantıdan oluşuyor ve .claude/commands klasöründe Claude Code için iki hazır komut bulunuyor: ekran oluşturma ve yerelleştirme dizeleriyle çalışma.

Rust Tabanlı MTProto Motoru

MTProto, Telegram istemcilerinin sunucularla iletişim kurduğu protokoldür: şifreleme, oturumlar, veri merkezlerine bağlantılar. iOS ve macOS'ta bu işi hala Objective-C tabanlı bir kütüphane olan MtProtoKit yürütüyor. Onun yerine mtproto-engine yazıldı. İlk commit 2 Ekim'de, son commit 13 Ekim'de yapıldı, toplamda 16 commit var. Kod neredeyse tamamen Rust ile yazılmış, lisansı GPL-2.0.

README'ye göre motor, NetworkEngine katmanı aracılığıyla TelegramCore'a bağlanır ve hem iOS hem de macOS'ta çalışır. MtProtoKit varsayılan motor olarak kalır. Yeni motor, geliştirici ayarlarında "Network Engine" öğesi altında seçilir ve yeniden başlatıldıktan sonra çalışmaya başlar. Her iki motor da aynı kaydedilmiş durumu yazar, bu nedenle geçiş hesabı oturumdan çıkarmaz. Herkese açık Telegram-iOS'ta motor, repository'nin son commit'i olan da4b217021 ile third-party/mtproto-engine alt modülü olarak bağlanmıştır.

Ana fark iş parçacıklarında. MtProtoKit, tüm hesapların tüm oturumlarını, tüm ayrıştırmayı ve tüm şifrelemeyi tek bir ortak kuyrukta yürütür. Bu nedenle, büyük bir dosyanın indirilmesi, ana oturumdaki güncellemelerin teslimatını geciktirir. Yeni motor iki ila dört iş parçacığı tutar: ana oturumlar birinciye atanır, indirmeler ve CDN diğerlerine dağıtılır ve 512 KB'lık dosya parçalarının şifresini çözme ana oturumu yavaşlatmaz.

macOS beta sürümünde motor, kod açılmadan önce ortaya çıktı. "Rust (restart required)" dizesi 2 Ekim tarihli 12.10.283246 derlemesinde mevcuttu. Bir sonraki derlemede "Engine switch to rust refused, the server disabled it" dizesi ortaya çıktı, yani Telegram sunucusu geçişi yasaklayabilir. Repository belgeleri bu mekanizmayı "live kill switch" olarak adlandırıyor ve ilk sürümünü 283247 ve 283248 beta sürümlerine atfediyor.

Ölçümler Neyi Gösteriyor

Motorların karşılaştırması macOS repository'sinde, mtproto-rust-vs-mtprotokit.md dosyasında yer alıyor. Nihai sürümü 2 Ekim tarihli. Ölçümler, sahte bir ağ simülatörünün arkasındaki sahte bir Telegram kümesine karşı gerçek TelegramCore yığını üzerinden çalıştırıldı ve bazı satırlar gerçek sunucularda alındı. Bunlar ekibin kendi rakamlarıdır, bağımsız olarak kimse tarafından doğrulanmamıştır.

TestRustMtProtoKit
Büyük dosya, 100 ms gecikme, 200 Mbit/s22,3 MB/s6,7 MB/s
CDN üzerinden büyük dosya, aynı ağ13,7 MB/s6,8 MB/s
6 saniyelik ağ kesintisinde normal yanıt bekleme süresi72 ms4,3 s
Kesinti bitiminden sonra ilk yanıt0,07 s1,11 s
10.000 küçük istek, işlemci süresi0,20 s1,05 s

47 senaryodan oluşan ayrı bir set, çöp gönderen, yanıtları tekrarlayan ve bağlantıları kesen düşmanca bir sunucuya karşı motorları test eder. Rust 47 senaryonun tamamını geçti ve hiçbir zaman bir isteği iki kez yürütmedi. MtProtoKit 18 senaryoyu sorunsuz tamamladı. 11 senaryoda takıldı, ikisinde işlemci yüküyle sonsuz döngüye girdi ve 24 senaryoda istekleri tekrar tekrar, toplamda 49.395 kez yürüttü.

Denetim ve Cüzdan

docs/security-audit klasöründe 2 Ekim tarihli macOS ağ yığını denetim raporu yer alıyor. Buna göre, MtProtoKit uygulamada hala her yetkilendirme anahtarı değişimini gerçekleştirirken, yeni motor generate_key = 0 parametresiyle çalışıyor, yani kendisi anahtar oluşturmuyor. Rapor, MtProtoKit'te iOS için Telegram ile ortak olan iki yüksek önem dereceli güvenlik açığını açıklıyor: sunucunun kimliği doğrulanmadan önce istemcinin çökmesi ve takılması. Aynı gün, MtProtoKit anahtar değişimi düzeltmesiyle c371b688c7 commit'i herkese açık Telegram-iOS'a dahil edildi.

Mac'teki TON cüzdanı da Rust üzerinde çalışıyor. packages/Wallet içindeki cüzdanın manuel portu kaldırıldı ve macOS, telegram-ios'tan ortak cüzdan kodunu ve Apache-2.0 lisanslı Rust tabanlı wallet-engine kütüphanesini alıyor. Bu, UniFFI bağlama jeneratörü aracılığıyla bağlanır ve hizmet dizeleri 25 Eylül tarihli 12.10.283234 derlemesinde macOS beta sürümünde zaten mevcuttur.

Aynı TelegramMessenger organizasyonunda 11 Ekim'de JavaScript motoru QuickJS-ng'nin bir fork'u ortaya çıktı. Buradaki commit'ler, mtproto-engine'dekiyle aynı macosswift hesabı adına yapıldı. Bunlar yorumlayıcıyı ve bellek dağıtımını hızlandırıyor. Fork'un nerede kullanıldığı açık kaynak kodunda henüz gösterilmiyor.