deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

GoyGram, Telegram Bot API ve MTProto'yu Rust çekirdekli tek bir Python runtime içinde çalıştırıyor

GoyGram, Telegram'ın Bot API'sini ve MTProto'yu tek bir asyncio sürecinde çalıştıran yeni bir açık kaynak Python framework'ü; şifreleme ve TL serileştirme işlemleri derlenmiş bir Rust çekirdeği tarafından hallediliyor.

GoyGram, Telegram Bot API ve MTProto'yu Rust çekirdekli tek bir Python runtime içinde çalıştırıyor

İki protokol için tek runtime

GoyGram, Telegram'ın iki protokolünü — Bot API ve MTProto — tek bir asyncio süreci içinde çalıştıran yeni bir açık kaynak Python Telegram framework'ü. Projenin dev.to'daki duyurusuna göre, kriptografi ve TL serileştirme işleri Python'dan çıkarılıp derlenmiş bir Rust uzantısına taşınmış. Framework, GitHub'da AGPL-3.0 lisansıyla sunuluyor ve proje tarafından barındırılan ayrı bir dokümantasyonu var.

İki transport, geçmişte iki kütüphane

Telegram'a karşı yazılım geliştirmenin birbirinden çok farklı iki yolu var: botların çoğunun üzerine inşa edildiği standart arayüz Bot API ve Telegram'ın kendi uygulamalarının kullandığı daha alt seviye istemci protokolü MTProto. Duyurunun da belirttiği gibi, bu ayrım Python ekosistemini ikiye bölmüş durumda — aiogram ve python-telegram-bot yalnızca Bot API'yi destekliyor, Telethon ve Pyrogram ise yalnızca MTProto konuşuyor. Her iki tarafa da ihtiyaç duyan her şey — örneğin aynı zamanda oturum açmış bir kullanıcı istemcisi olarak da çalışan bir bot — iki kütüphane, iki event loop ve iki ayrı session durum kümesi çalıştırmak anlamına geliyordu.

GoyGram bunu tek süreç, tek loop ve tek dispatcher'a indiriyor. Transport işlem bazında seçiliyor ve duyuruya göre tek bir handler her iki protokole de hizmet verebiliyor. Bunun üzerine çoklu session desteği, filtreler, FSM durum makineleri, transport yönlendirme ve bir event pipeline geliyor.

Rust çekirdek

Performans iddiası, kritik kodun nerede çalıştığına dayanıyor. Duyuruya göre AES-256-IGE ve AES-256-GCM işlemleri Rust'ta gerçeklenmiş, LTO ile opt-level=3 seviyesinde derlenmiş.

Gönderi, Python 3.11 çalıştıran tek bir VPS'ten benchmark'lar içeriyor. Soğuk import süresi 87 ms olarak iddia ediliyor; karşılaştırıldığında aiogram 3.1 s, Pyrogram 477 ms, Telethon ise 298 ms. İmport sonrası bellek kullanımı 12 MB RSS olarak iddia edilirken aiogram 152 MB; AES-256-IGE throughput'u 113 MB/s iken varsayılan Telethon değeri 12 MB/s. Bunlar tek makineden ve tek Python sürümünden gelen, projenin kendi bildirdiği rakamlar; bağımsız bir karşılaştırma değil, dolayısıyla kesin büyüklükler kesinleşmiş değil, yol gösterici olarak ele alınmalı.

Üretilmiş kod yerine şema güdümlü dispatch

TL tabanlı bir kütüphaneye genellikle eşlik eden yüzlerce üretilmiş model dosyasını paketlemek yerine GoyGram, metotları yükleme anında TL şemasından çözümlüyor — projenin zero-overhead dinamik dispatch olarak tanımladığı bir tasarım. Raw alanlar ise tembel biçimde, yalnızca bir handler gerçekten onlara dokunduğunda okunuyor; duyuru bunu düşük import süresi ve bellek ayak iziyle ilişkilendiriyor.

OpSec öncelikli session yönetimi

Framework, kimlik bilgileri konusunda da net bir duruş sergiliyor. Session'lar makinenin kimliğine anahtarlanmış bir AES-256-GCM kasasında tutuluyor, anahtarlar logout'ta bellekten sıfırlanıyor ve giriş yalnızca terminal üzerinden yapılıyor — QR kodu, telefon numarası veya 2FA ile — böylece duyuruya göre hiçbir token tarayıcıdan veya masaüstü istemcisinden geçmiyor. Bu son kısıtlama özellikle MTProto çalışmalarına yönelik; çünkü kişisel bir hesaba karşı çalışan script'ler, sakladıkları session materyali kadar güvendedir.

Neden önemli

Python Telegram ekosistemi yıllardır bir transport seçiminin etrafında örgütlendi ve bu seçim kütüphaneyi, mimariyi ve dağıtımı belirledi. GoyGram'ın bahsi, transportun bir implementasyon detayı olması gerektiği — çağrı bazında seçilen, tek bir dispatcher'da ele alınan — ki bu, aiogram, python-telegram-bot, Telethon veya Pyrogram'ın sunduğundan gerçekten farklı bir biçim.

İkincisi, bu, Python dünyasındaki net bir eğilimin devamı: Pydantic, Ruff ve Polars gibi projeler kritik yollarını Rust'ta yeniden yazdı ve büyük performans kazançları bildirdi. Aynı deseni Telegram'ın kriptografi ve serileştirmesine uygulamak, Python seviyesinde ergonomiyle native seviyesinde throughput'a giden makul bir yol.

Üçüncüsü, güvenlik tasarımı — şifreli, makineye bağlı session kasaları ve logout'ta sıfırlanan anahtarlar — MTProto araçlarının bilinen bir zayıf noktasını hedefliyor; burada yanlış ele alınan session dosyaları doğrudan hesabın ele geçirilmesine dönüşebiliyor. Token'ları tarayıcı ve masaüstü istemcilerinden uzak tutmak da yaygın bir açık kapıyı kapatıyor.

Uyarılar da bir o kadar gerçek: proje yeni, benchmark'ları tek bir VPS üzerinde kendi tarafından bildirilmiş durumda ve AGPL-3.0 lisansı, ticari kullanıcıların üzerine inşa etmeden önce incelemesi gereken copyleft yükümlülükleri taşıyor. GoyGram'ın şimdiye kadar yayınladığı şey umut verici bir yön, henüz bir sicil değil.

  • #telegram
  • #python
  • #rust
  • #open-source
  • #bot-framework

İlgili yazılar