← Radar

Konu: Kodlama3 dk okuma

Yapay zekâ araçları neden Rust'a taşınıyor? Copilot, Codex ve Python'un altındaki motor

Bu neden önemli?

Ajan araçları günde sayısız kez açılıp kapanıyor ve aynı makinede onlarca oturum çalıştırıyor. Burada açılış süresi ve bellek doğrudan maliyet demek. Rust'ın neden seçildiğini bilirsen, hangi aracın neden hızlı olduğunu ve kendi aracını hangi dille yazman gerektiğini daha iyi anlarsın.

Bellek hatası neden bu kadar önemli?

Her program, işi bitince kullandığı belleği geri vermek zorunda. C ve C++’ta bunu elle yapıyorsun. Serbest bıraktığın belleği kullanmaya devam etmek, iki kez serbest bırakmak ya da hiç bırakmamak çok kolay. Bu hatalar sadece çökme değil, güvenlik açığı da demek. Microsoft 2019’da, düzeltip CVE numarası verdiği açıkların yaklaşık %70’inin kökünde bellek hatası olduğunu yazdı. Chrome ekibi de yüksek önemdeki hatalarında aynı oranı görüyor.

Diğer yol çöp toplayıcı (garbage collector, GC). Python, Node, Go ve Java belleği senin yerine temizliyor. Bedeli, programın senin seçmediğin anlarda duraklaması. Discord 2020’de bunu anlattı: Go ile yazılmış bir servisinde GC yaklaşık iki dakikada bir gecikme ve işlemci sıçramaları yaratıyordu. Rust ile yazılan sürümde bu sıçramalar yoktu.

Rust ikisini birden nasıl çözüyor?

Cevap sahiplik (ownership). Rust’ta her değerin tek bir sahibi var. Sahip kapsamdan çıktığı anda bellek tam o noktada serbest bırakılıyor, arkada çalışan bir temizlikçi yok. Değeri başkasına devrettiysen eski adıyla kullanamıyorsun. Ödünç verme (borrow) kurallarını da derleyici kontrol ediyor. Bu kuralları çiğneyen kod hiç derlenmiyor, yani hata program çalışmadan yakalanıyor. Bu sözün de delikleri olabildiğini 11 yıllık unsound hata yazısında anlatmıştık, ama pratikte çok iyi tutuyor.

Google’ın Android verisi bunu gösteriyor. Kasım 2025 yazısına göre yeni kodu Rust ile yazmaya başladıktan sonra bellek açıkları ilk kez tüm açıkların %20’sinin altına indi. Google’ın tahminine göre Rust kodundaki bellek açığı yoğunluğu, C ve C++’a göre yaklaşık 1000 kat düşük. Rust değişiklikleri yaklaşık 4 kat daha az geri alınıyor ve kod incelemesinde %25 daha az zaman harcıyor. Ama Rust tedarik zinciri saldırılarını önlemiyor: Ağustos’taki arrayref saldırısında projeyi derlemek bile yetiyordu.

Copilot: 5 saniyeden 300 milisaniyenin altına

GitHub’dan Stephen Toub, Eylül’de Copilot CLI, Copilot uygulaması ve Copilot SDK’nın arkasındaki ajan çalışma ortamının (runtime) Rust’a taşındığını anlattı. Eski düzende SDK’yı kullanan her uygulama yanında ayrı bir Node süreci açıyordu. Bu süreç daha hiçbir iş yapmadan 100 MB civarı bellek tutuyordu. Rust ise tek bir yerel (native) dosyaya derleniyor, ayrıca kurulacak bir çalışma ortamı yok. Uygulama bu kütüphaneyi kendi sürecine yükleyip doğrudan çağırabiliyor.

Fark büyük. GitHub’ın ölçtüğü senaryoda (istemci açmak, oturum kurmak, tek cevap almak, model süresi hariç) eski runtime 5,25 saniye sürüyordu. Rust runtime ayrı süreçte 1,33 saniye, aynı süreçte 292 milisaniye tuttu. On eşzamanlı istemcide en yüksek bellek kullanımı 1383 MB’tan 126 MB’a indi.

Derleyici, ajanın öğretmeni

Taşımayı büyük ölçüde Copilot’un kendi ajanları yaptı. Yaklaşık 430 bin satır TypeScript, 14,5 haftada 832 bin satır Rust ve 469 bin satır birim testine dönüştü. Rust derleyicisi burada çok işe yarıyor: Hatanın hangi satırda olduğunu ve neyin yanlış gittiğini net söylüyor. Ajan mesajı okuyor, düzeltiyor, tekrar deniyor. GitHub ajanların aldığı derleme hatalarını da saydı. Rust’ın meşhur sahiplik ve ödünç alma hataları sadece %1,7’ydi. En çok görülenler, isim çözümleme ya da eksik metot gibi her tipli dilde karşına çıkacak hatalardı. Yani “Rust zor, ajan yazamaz” korkusu pek tutmadı.

Tek örnek de değil. OpenAI Mayıs 2025’te Codex CLI’ı Node’dan Rust’a taşıyacağını duyurdu. Sebeplerden biri, Node 22 şartının bazı kullanıcıları engellemesiydi. Bugün depo yaklaşık %97 Rust. Claude Code’un üzerinde çalıştığı Bun da bu yaz Zig’den Rust’a geçti.

Python üstte, Rust altta

Python yazıyorsan dil değiştirmen gerekmiyor. Hugging Face’in tokenizers kütüphanesinin, OpenAI’ın tiktoken’ının ve Pydantic 2’nin (pydantic-core) çekirdeği Rust. pip’in hızlı alternatifi uv de Rust ile yazılmış. Sen kısa ve okunur Python yazıyorsun, ağır işi altta Rust yapıyor. NVIDIA da Eylül’de GPU çekirdeklerini (kernel) Rust ile yazmak için CUDA Rust’ı duyurdu. Ama kendisi de henüz üretime hazır olmadığını söylüyor.

Kısacası, modelin etrafına bir CLI ya da ajan düzeneği (harness) kuruyorsan açılış süresi, bellek ve tek dosyayla dağıtım çok önemli. Rust’ın öne çıkmasının sebebi bu.

Düşün

  • Her gün kullandığın bir komut satırı aracının açılması ne kadar sürüyor? Hiç ölçtün mü?
  • Ajana kod yazdırırken, hatayı net söyleyen katı bir derleyici mi daha çok işine yarar, esnek bir dil mi?

Videoyu izle

Tıklayınca video YouTube'dan yüklenir; o ana kadar bu sayfa YouTube'a hiçbir istek göndermez.
Kaynaklar (14, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Kodlama3 dkVideo: Better Stack

Rust'ın 11 yıllık açığı: Güvenli kodla silinmiş belleği okumak

Ekim'de açılan bir hata kaydı, sadece güvenli Rust koduyla, on küsur satırda ömrü bitmiş bir değişkene erişilebildiğini gösterdi. Katkıcıların bulduğu bir varyant Rust 1.4'ten, yani 2015'ten beri derleniyor. Kazara denk gelmek zor, ama derleyicinin verdiği söz delinmiş oldu.