# Codex Rust: Rust projelerinde Codex nasıl kullanılır

Adres: https://agentvera.dev/blog/codex-ile-rust/ · Yayın: 2026-11-01

Rust projelerinde OpenAI Codex ile verimli çalışın: AGENTS.md kurulumu, cargo test ve clippy döngüsü, tipik görevler ve dikkat edilecek noktalar.

**Kısaca:**

- Codex, Rust projesinde AGENTS.md talimatlarını okuyarak cargo build, test, clippy ve fmt komutlarını doğrudan çalıştırır.
- Borrow checker hatalarını çözerken ajanın gereksiz clone, Rc veya unsafe eklemesini sıkı biçimde gözden geçirin.
- Çalışma döngüsünü küçük adımlara bölüp her değişiklikten sonra test ve lint çalıştırmak en güvenilir sonucu verir.

Codex’i bir Rust projesinde kullanmak için proje kökünde `codex` komutunu çalıştırmanız yeterlidir; agent, AGENTS.md dosyasındaki talimatları okur ve cargo, clippy, rustfmt gibi araçları doğrudan çalıştırabilir. Bu rehber, borrow checker hatalarından test döngülerine kadar Rust’a özgü pratik bir çalışma düzeni sunar.

## Codex Rust işleri için neden uygun

Codex, terminalde çalıştığı için Rust ekosisteminin komut satırı araçlarıyla doğal biçimde bütünleşir. Codex’in nasıl başlatıldığına dair genel bilgi [Codex](/ajanlar/codex/) sayfasındadır. `cargo` meta verilerini okuyabilir, derleyici hatalarını satır satır yorumlayabilir ve `cargo test` çıktısındaki başarısızlıkları takip edebilir. Özellikle borrow checker hataları uzun ve karmaşık olduğunda, ajan hatayı parçalara ayırıp küçük düzeltmeler önerebilir; bu da manuel olarak `E0502` veya `E0499` ile boğuşmaktan daha hızlıdır. Ayrıca `clippy` uyarılarını uygulamak, `rustfmt` ile biçimi korumak ve yeni test eklemek gibi tekrarlayan işlerde tutarlıdır.

Ajan, `cargo check`'i hızlı geri bildirim için kullanabilir; böylece tam derleme beklemeden hata olup olmadığını görür. Rust’un güçlü tip sistemi sayesinde ajan, bir değişikliğin etkisini daha kolay anlar; örneğin bir enum varyantı eklediğinde tüm `match` kollarını güncellemesi gerektiğini derleyici çıktısından fark eder. `cargo add` ile yeni crate eklerken uyumluluk sorunlarını önceden görebilir; ancak sürüm seçimlerinde dikkatli olmak gerekir çünkü ajan bazen en son sürümü ekleyerek kırılan API’leri göz ardı edebilir.

## Rust projesini Codex için hazırlama

Codex’in Rust projesinde doğru kararlar vermesi için proje köküne `AGENTS.md` ekleyin. Bu dosya, agent’ın her çalıştırmada okuyacağı kısa ve net talimatlar içerir; ayrıntılı bağlam yönetimiyle ilgili [Bağlam mühendisliği: yapay zeka kodlama ajanları rehberi](/blog/baglam-muhendisligi/) sayfasındaki ilkeler burada da geçerlidir. Dosyada komutlar, klasör düzeni ve Rust’a özgü kurallar yer almalıdır. Gerçekçi bir örnek:

```markdown
# AGENTS.md

## Komutlar
- Derleme: `cargo build`
- Test: `cargo test`
- Lint: `cargo clippy -- -D warnings`
- Biçim: `cargo fmt --check`

## Klasör düzeni
- `src/` altında her modül için bir dosya açın.
- `tests/` entegrasyon testlerini tutar; `benches/` benchmarkları.
- Yeni modül eklerken `src/lib.rs` veya `src/main.rs` içinde `mod` bildirimi yapın.

## Rust kuralları
- Kütüphane kodunda `unwrap()` ve `expect()` kullanmayın; `Result` veya `Option`'ı `?` ile yayın.
- Public API'de `unsafe` kullanmayın; zorunluysa nedenini yorumda açıklayın ve güvenlik değişmezini yazın.
- Yeni bağımlılık eklemeden önce `Cargo.toml`'u kontrol edin; mümkünse standart kütüphane veya mevcut crate'i kullanın.
- Her değişiklikten sonra `cargo fmt` ve `cargo clippy -- -D warnings` temiz olmalıdır.
```

Bu dosya kısa tutulmalı; uzun dokümanlar agent’ın dikkatini dağıtır. Agent bu dosyayı her oturumda yeniden okur; değiştirdiğinizde yeni oturum açmanız gerekmez. Bir workspace kullanıyorsanız kök `Cargo.toml`'daki `[workspace]` üyelerini ve her crate’in rolünü belirtin. Ayrıca `rust-toolchain.toml` veya `rust-toolchain` dosyası ile pinlenmiş araç zinciri varsa, ajanın bunu kullanmasını isteyin; aksi halde yanlış sürümle derleyip gereksiz hatalar üretebilir.

## Çalışma döngüsü

Codex ile Rust işlerinde en verimli döngü şudur: önce isteği küçük ve net bir adıma bölün, ajanın plan yapmasına izin verin, değişiklikleri gözden geçirin ve her adımda testleri çalıştırın. Tek seferde büyük refactor istemek yerine sırayla ilerleyin; böylece borrow checker hataları yönetilebilir kalır. Aşağıdaki istekler tipik Rust görevleri için iyi başlangıç noktalarıdır:

- `src/parser.rs` içindeki `parse_config` fonksiyonunu `&str` yerine `impl AsRef<[u8]>` kabul edecek şekilde yeniden yaz ve tüm çağıranları güncelle.
- Bu `#[derive(Clone)]` yapısını `Arc` kullanacak biçimde değiştir; `clone` çağrılarını azalt, `cargo test` ve `cargo clippy` çalıştır.
- `cargo test` çalıştır, başarısız olan `test_retry_on_timeout` testini incele ve hatayı düzelt; yalnızca test kodunu değiştir.
- `Cargo.toml` içindeki `serde` bağımlılığını mevcut son sürüme güncelle, kırılan API kullanımlarını düzelt ve `cargo check` ile doğrula.
- `src/cache.rs` adında yeni bir modül ekle: `Cache<K,V>` tipi, `get_or_insert_with` metodu ve `#[cfg(test)]` birim testleri; `cargo fmt` ve `cargo clippy`'yi geç.

Bu liste, birbirinden bağımsız görevlerden oluşur; her birini ayrı oturumda yürütmek daha güvenlidir. Bir görev borrow checker hatası üretirse, ajan genellikle önce `cargo check` ile hatayı doğrular, sonra önerilen düzeltmeyi yapar; siz de aynı akışı takip edebilirsiniz. Plan istemek için "Önce ne yapacağını adım adım açıkla, kod yazma" gibi bir istek vermek de mümkündür; böylece yanlış yöne gitmeden önce müdahale edebilirsiniz.

## Codex’in iyi yaptığı Rust işleri ve dikkat edilecek yerler

Codex; boilerplate üretme, trait implementasyonu, `From`/`TryFrom` dönüşümleri, hata tipleri oluşturma, test yazma ve imza değişikliklerini yayma konularında oldukça iyidir. Küçük ve iyi tanımlanmış görevlerde yüksek başarı gösterir. Örneğin bir enum’a varyant eklediğinizde tüm `match` ifadelerini güncellemesini isteyebilirsiniz; ajan derleyici hatalarını kullanarak eksik kolları bulur. Benzer şekilde `thiserror` ile hata tipleri oluşturmak, `serde` için `Deserialize` implementasyonları yazmak veya bir `Iterator` implementasyonunu tamamlamak da tekrarlayan ama güvenli işlerdir.

Ancak borrow checker hatasını çözmeye çalışırken gereğinden fazla `.clone()`, `Rc<RefCell<T>>` veya `Arc<Mutex<T>>` ekleyebilir; bu durum performansı ve kod netliğini bozar. `unsafe` blok önerdiğinde mutlaka gerekçesini isteyin ve güvenlik değişmezlerini kontrol edin. Ayrıca public API’yi farkında olmadan değiştirebilir, gereksiz bağımlılık ekleyebilir veya `cargo fmt` / `clippy` komutlarını atlayabilir. Örneğin, bir `&mut Vec<T>` hatasını çözmek için fonksiyonu `Vec<T>` döndürecek şekilde değiştirebilir; bu, çağıranları sessizce etkiler. `async fn` imzalarında `Send`/`Sync` sınırlarını yanlış koyabilir veya `tokio::spawn` içinde `!Send` değerler kullanabilir. Bu yüzden her değişikliği diff üzerinden inceleyin; özellikle `Cargo.toml`, `unsafe`, `pub` öğeler ve `Mutex`/`RwLock` kullanımına dikkat edin.

## Rust için test ve doğrulama

Codex’e yalnızca kodu değiştirmesini değil, doğrulama komutlarını çalıştırmasını da söyleyin. Rust’ta güvenli bir değişiklik için `cargo check`, `cargo test`, `cargo clippy` ve `cargo fmt --check` sırasıyla çalıştırılmalıdır. Ajan, hata çıktısını okuyup düzeltebilir; siz de commit öncesi aynı komutları manuel çalıştırarak ikinci bir kontrol yapın. Özellikle `cargo test` başarısız olduğunda, Codex’e yalnızca hatayı düzeltmesini değil, testin amacını açıklamasını da isteyebilirsiniz; bu, yanlış düzeltmeleri yakalamanıza yardımcı olur.

| Araç | Amaç | Codex’e istek örneği |
|------|------|----------------------|
| `cargo check` | Hızlı derleme ve borrow checker kontrolü | "Önce cargo check çalıştır, hataları düzelt" |
| `cargo test` | Birim ve entegrasyon testleri | "cargo test çalıştır, başarısız testleri raporla ve düzelt" |
| `cargo clippy -- -D warnings` | Lint hatalarını sıfırlama | "Clippy uyarılarını temizle, gerekmedikçe allow ekleme" |
| `cargo fmt --check` | Biçim tutarlılığı | "cargo fmt çalıştır, değişiklikleri commit et" |

Çoklu crate içeren workspace’lerde `--workspace` ve `--all-features` bayraklarını eklemesini isteyin; böylece tüm üyeler test edilir. Ayrıca doctest’leri kontrol etmek için `cargo test --doc` komutunu ekletin; ajan bazen yalnızca birim testlerine odaklanıp dokümantasyon örneklerini atlayabilir. Testlerin paralel çalışmasından kaynaklanan yarış durumları varsa `cargo test -- --test-threads=1` isteyebilirsiniz. Sıkı bir CI pratiği için [CI hatasını yapay zeka düzeltsin, PR yorumunu da](/blog/ci-hatasini-yapay-zeka-duzeltsin/) sayfasındaki akışı benimseyebilirsiniz; ancak burada da clippy ve fmt temizliğini şart koşun.

## Rust projesinde birden fazla ajan çalıştırmak

Birden fazla Codex ajanını aynı Rust projesinde koordine etmek için AgentVera kullanabilirsiniz; [AgentVera nasıl kullanılır: ilk proje, ajanlar ve ızgara](/blog/agentvera-nasil-kullanilir/) rehberindeki gibi her ajan kendi git worktree’sinde çalıştığı için borrow checker düzeltmeleri ve refactor’lar birbirinin dosyalarını ezmez. Otomatik kod incelemesi, ajanın eklediği `unsafe` blokları veya gereksiz `clone` çağrılarını dosya:satır olarak işaretler. Checkpoint’ler yanlış bir ömür süresi değişikliğini tek tıkla geri almayı sağlar; token bütçeleri ise ajanın tek döngüde projeyi dağıtmasını engeller.

## Özet

Codex, Rust projelerinde doğru talimatlar ve sıkı bir doğrulama döngüsüyle güçlü bir yardımcıdır. AGENTS.md dosyasını net tutun, her değişikliği cargo test ve clippy ile doğrulayın ve özellikle borrow checker kaynaklı düzeltmelerde diff’i dikkatle inceleyin. Böylece ajanın hızından faydalanırken Rust’un güvenlik ve performans garantilerini korursunuz.

## Sık sorulanlar

**Codex Rust projesinde hangi komutları çalıştırabilir?** Codex, proje kökünde başlatıldığında terminal üzerinden cargo build, cargo test, cargo clippy ve cargo fmt gibi Rust araçlarını çalıştırabilir. AGENTS.md dosyasında bu komutları ve beklentileri belirtirseniz ajan doğru sırayla kullanır.

**Codex borrow checker hatalarını düzeltebilir mi?** Evet, derleyici çıktısını okuyup ödünç alma ve yaşam süresi hatalarını gidermeye çalışır. Ancak bazen anlamı değiştiren clone, Rc veya unsafe ekleyebilir; bu yüzden her düzeltmeyi diff üzerinden incelemek gerekir.

**Codex ile Rust testleri nasıl çalıştırılır?** Codex’e cargo test çalıştırmasını söyleyebilirsiniz. Başarısız testleri inceleyip düzeltmesini istediğinizde önce hatayı anlamaya çalışır, ardından test veya kaynak kodda değişiklik yapar ve testi yeniden çalıştırır.

**AGENTS.md dosyasına Rust için neler yazmalıyım?** Derleme, test, lint ve format komutlarını; src/ ve tests/ klasör düzenini; unwrap ve expect kullanım kurallarını; unsafe politikasını ve bağımlılık ekleme sınırlarını yazın. Kısa ve net talimatlar Codex’in tutarlı davranmasını sağlar.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
