Teknoloji

Pyodide nedir? Python paketleri artık WebAssembly tekerleklerini PyPI'ye yayımlıyor

Hacker News3 sa önce
Güneşli bir masada laptop ekranında kod editörü
Güneşli bir masada laptop ekranında kod editörüPhoto: Daniil Komov / Pexels

Pyodide projesinin 314.0 sürümü, Python paketlerinin doğrudan PyPI üzerine WebAssembly tekerlekleri yayımlamasına olanak veriyor. Hacker News'te öne çıkan bu duyuru, tarayıcıda çalışan Python ekosisteminin geleceği için önemli bir dönüm noktası. Pyodide'nin ne olduğuna ve neden önemli olduğuna yakından bakalım.

Pyodide, Python yorumlayıcısı CPython'un WebAssembly (Wasm) olarak derlenmiş bir sürümü. WebAssembly, modern tarayıcıların çalıştırabildiği taşınabilir bir bayt kodu formatı. Pyodide sayesinde Python kodu, bir Node.js veya Python kurulumuna ihtiyaç duymadan doğrudan tarayıcıda çalışabiliyor. Mozilla'nın açık kaynak projesi olarak başladı, şimdi bağımsız bir topluluk tarafından sürdürülüyor.

Neden tarayıcıda Python? Üç temel kullanım alanı var. Birincisi, eğitim: öğrenci, herhangi bir kurulum yapmadan tarayıcıda Python öğrenebiliyor. Project Jupyter ekibinin JupyterLite uygulaması, Pyodide üzerinde çalışıyor ve eğitim kurumlarında yaygınlaştı. İkincisi, veri görselleştirmesi: tarayıcı sayfasında çalışan dashboard'lar, pandas ve matplotlib ile dinamik analiz sağlıyor. Üçüncüsü, bilimsel iletişim: bir araştırmacı, makalesini tarayıcıda çalıştırılabilir Python örnekleri ile sunabilir.

WebAssembly tekerlekleri (Wasm wheels) konsepti şu: standart Python paketlerinde derlenen kod, dağıtım için "wheel" denilen ön derlenmiş paket biçiminde yayımlanıyor. Klasik tekerlekler, sistem (Linux/macOS/Windows) ve CPU mimarisi (x86_64, arm64) için ayrı ayrı üretiliyor. WebAssembly tekerlekleri ise WebAssembly hedefine derleniyor; tarayıcıda doğrudan çalışıyor.

Düşük seviyede iki konfigürasyon yapıldı. Birincisi, PyPI altyapısı, WebAssembly hedefini resmi olarak tanıyıp barındıracak şekilde güncellendi. İkincisi, Pyodide'nin paket yükleme katmanı (`micropip`), bu yeni tekerlekleri otomatik keşfedip kuruyor. Bu, geliştiriciler için "Python paketi yayımla" eylemine WebAssembly hedefini de ekledi.

Önemli sınır: tüm paketler WebAssembly'e doğrudan derlenemiyor. C uzantısı olmayan saf Python paketleri zaten sorunsuz çalışıyordu. C uzantılı paketler (NumPy, SciPy, pandas, scikit-learn gibi) Pyodide üzerinde özel derlemelerle desteklendi. Yeni adım, üçüncü taraf paket geliştiricilerin de bu hedefi PyPI üzerinden sunabilmesini sağlıyor.

Önceden olağan akış şuydu: bir geliştirici, NumPy gibi büyük paketleri Pyodide'de kullanmak isterse, Pyodide ekibinin manüel olarak derlediği paket dağıtımını beklemek zorundaydı. Yeni model, paket sahibinin kendi WebAssembly tekerleğini yayımlayabilmesini sağlıyor. Bu, ekosistem genişliği için önemli bir kapı açıyor.

Performans tarafında, WebAssembly çoğunlukla saf JavaScript'ten daha hızlı, ancak ana iş parçacığında çalışan WebAssembly de tarayıcı bellek ve CPU sınırlarına tabi. Pyodide'nin son sürümleri, Worker thread desteğini geliştirerek paralel hesaplama olanaklarını artırdı.

Güvenlik boyutu: WebAssembly, tarayıcı sandbox'ı içinde çalışıyor, dolayısıyla doğrudan sistem dosyalarına veya ağ kaynaklarına erişimi yok. Bu, Pyodide'yi öğrenci, araştırmacı veya halka açık demolar için güvenli bir seçim hâline getiriyor. Kurumsal güvenlik politikası açısından da bu sınırlar avantaj.

Türkiye için bağlam: TÜBİTAK ULAKBİM'in eğitim platformları ve YÖK'ün açık ders kaynakları girişimleri, Pyodide gibi tarayıcı tabanlı Python ortamlarını ölçeklemek için doğal aday. Boğaziçi, ODTÜ ve İTÜ gibi üniversitelerin veri bilimi dersleri, hâlihazırda JupyterLite/Pyodide tabanlı laboratuvar materyallerine yöneliyor.

Geliştiriciler için somut ipucu: yeni Python paketi yayımlıyorsanız, WebAssembly tekerleği hedefini build sürecinize eklemeyi değerlendirin. cibuildwheel ve auditwheel gibi araçlar, son sürümlerinde WebAssembly desteği ekledi. Mevcut paketleri sürdürüyorsanız, paket kullanıcılarınızın tarayıcıda Pyodide üzerinde çalıştırma talebinin artması bekleniyor. Bu yazı bir geliştirici tavsiyesi değildir.

Bu yazı, Hacker Newskaynağına dayanılarak Vesper'ın yapay zeka editörü tarafından hazırlanmıştır. Görsel, Pexels'tan Daniil Komov tarafından çekilmiş bir stok fotoğraftır.

Bunları da okuyun

Bir veri merkezinin endüstriyel soğutma boruları ve metal kapakları.
Teknoloji

Yapay zeka veri merkezleri ne kadar su kullanıyor? Toplam tüketim içinde gerçek büyüklüğü

Son aylarda 'AI veri merkezleri suyu tüketiyor' başlıklı haberler çoğaldı. Ars Technica, küresel veriyi yan yana getirerek veri merkezi tüketiminin toplam içinde küçük bir pay tuttuğunu, ancak yerel ölçekte gerçek bir su kıtlığı tetikleyicisi olabileceğini gösteriyor. Doğru tartışma, ulusal toplam değil yerel su havzaları üzerinden yapılmalı.

Ars Technica1 gün önce