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
Kaynaklar (14, İngilizce)
- Better Stack: Why Rust Is The New GOAT For AI (video) (yeni sekmede açılır)
- GitHub Blog: Migrating the GitHub Copilot runtime to Rust, using Copilot (yeni sekmede açılır)
- openai/codex Discussion #1174: Codex CLI is Going Native (yeni sekmede açılır)
- openai/codex (GitHub) (yeni sekmede açılır)
- Bun Blog: Rewriting Bun in Rust (yeni sekmede açılır)
- Google: Rust in Android: move fast and fix things (yeni sekmede açılır)
- Microsoft MSRC: We need a safer systems programming language (yeni sekmede açılır)
- The Chromium Projects: Memory safety (yeni sekmede açılır)
- Discord Blog: Why Discord is switching from Go to Rust (yeni sekmede açılır)
- NVIDIA Technical Blog: Introducing CUDA Rust (yeni sekmede açılır)
- huggingface/tokenizers (GitHub) (yeni sekmede açılır)
- openai/tiktoken (GitHub) (yeni sekmede açılır)
- pydantic/pydantic-core (GitHub) (yeni sekmede açılır)
- astral-sh/uv (GitHub) (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.