# Cursor Agent ile Rust Projelerinde Verimli Çalışma Rehberi

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

Cursor Agent ile Rust projelerinde cargo, borrow checker, clippy ve test süreçlerini yönetmek için pratik kurulum, kurallar, çalışma döngüsü ve tuzaklar.

**Kısaca:**

- Cursor Agent, Rust projelerinde cursor-agent komutuyla çalışır ve proje kurallarını AGENTS.md veya .cursor/rules dosyasından okur.
- Rust’a özel komutlar (cargo build, test, clippy, fmt) ajana net biçimde verilirse döngü daha güvenli ilerler.
- Borrow checker hatalarını çözerken ajanın önerdiği gereksiz clone veya unsafe değişiklikleri diff’te denetlenmelidir.

Cursor Agent, Rust projelerinde `cursor-agent` komutuyla terminal üzerinden çalışan bir kodlama ajanıdır. Bu rehber, cargo, crates ve workspace yapısı, borrow checker, clippy ve test süreçlerini Cursor Agent ile nasıl yöneteceğinizi somut adımlarla anlatır. Proje talimatları AGENTS.md veya .cursor/rules dosyasından okunur; doğru kurulum, ajanın Rust’a özgü hataları daha az yapmasını ve derleyici geri bildirimini daha iyi kullanmasını sağlar. Daha geniş bağlam için [Cursor Agent](/ajanlar/cursor-agent/) sayfasına bakabilirsiniz.

## Cursor Agent neden Rust işlerine uygun?

Rust derleyicisi, hata mesajlarını satır ve neden bilgisiyle birlikte verir; Cursor Agent bu çıktıyı okuyup doğrudan kod üzerinde değişiklik yapabilir. Terminal erişimi sayesinde `cargo check`, `cargo test`, `cargo clippy` ve `cargo fmt` komutlarını kendisi çalıştırır, sonuçlara göre iterasyon yapar. Bu, sohbet tabanlı bir asistana göre çok daha kapalı bir geri bildirim döngüsü oluşturur.

Rust projeleri genellikle workspace altında birden fazla crate barındırır. Ajan, `Cargo.toml` dosyalarını ve modül hiyerarşisini okuyarak API değişikliklerinin diğer cratelere etkisini görebilir. Örneğin bir crate’teki public fonksiyon imzası değiştiğinde, onu kullanan diğer crate’lerdeki çağrıları da güncelleyebilir. Crates.io bağımlılıkları ve feature bayrakları da `Cargo.toml` üzerinden yönetilebildiği için sürüm uyumsuzluklarını tespit etmek kolaylaşır.

## Projeyi ajan için hazırlama: AGENTS.md ve .cursor/rules

Cursor Agent, proje kökündeki AGENTS.md veya .cursor/rules dosyasını talimat kaynağı olarak okur. Rust projesi için bu dosya ne kadar net olursa, ajanın varsayılan davranışları o kadar az sürpriz üretir. Aşağıdaki örnek, build, test, lint ve format komutlarını, dizin düzenini ve Rust’a özgü kuralları içerir:

```markdown
# Rust proje kuralları

## Komutlar
- Build: `cargo build --workspace`
- Test: `cargo test --workspace`
- Lint: `cargo clippy --workspace --all-targets -- -D warnings`
- Format: `cargo fmt --all -- --check`

## Dizin yapısı
- `crates/` altında workspace üyeleri bulunur; her crate kendi `src/lib.rs` veya `src/main.rs` dosyasına sahiptir.
- Ortak tipler `crates/core/src` altında tanımlanır; diğer crateler buradan import eder.

## Rust'a özel kurallar
- `unwrap()` ve `expect()` yalnızca testlerde veya matematiksel olarak kanıtlanabilir durumlarda kullanılabilir.
- Kütüphane kodunda hata tipi olarak `thiserror` tabanlı enum tercih et; `anyhow::Result` yalnızca binary katmanında kullanılabilir.
- `unsafe` blok eklemeden önce nedenini ve güvenlik argümanını yorum satırı olarak yaz.
- Bir borrow hatasıyla karşılaştığında önce ömür (lifetime) ihtiyacını değerlendir; gereksiz `clone()` eklemekten kaçın.
- `cargo fmt` uygulamadan önce `cargo fmt --all -- --check` ile format farkını göster.
```

Bu dosyayı sürüm kontrolüne ekleyin; ekip arkadaşları da aynı kuralları kullanır. Temel kurulum ve Cursor CLI kullanımı için [Cursor CLI nasıl kullanılır? Adım adım rehber](/blog/cursor-cli-nasil-kullanilir/) yazısına göz atabilirsiniz.

## Çalışma döngüsü ve örnek istemler

Rust ile Cursor Agent kullanırken şu döngüyü izleyin: önce görevi küçük bir adıma bölün, ajanın yalnızca o adımı yapmasını isteyin, ardından testleri ve diff’i inceleyin, sonra bir sonraki adıma geçin. Bu, borrow checker hatalarının birikmesini önler ve yanlış refactor’ların etkisini sınırlar.

Örnek istemler:

- `src/config.rs` içindeki `load_config` fonksiyonunu `Result<Config, ConfigError>` döndürecek şekilde yeniden yaz; `thiserror` ile `ConfigError` enum’ını oluştur ve `from` dönüşümlerini ekle.
- `cargo test --workspace` çalıştır, başarısız olan testleri listele ve yalnızca ilgili kaynak dosyalarını değiştirerek düzelt; test dosyalarını elle düzenleme.
- `src/parser.rs` içindeki `clone()` çağrılarını incele; gereksiz olanları ömür parametreleri veya referanslarla gider, ancak public API imzalarını bozma.
- `metrics` adında yeni bir modül ekle: `src/metrics.rs` oluştur, `Metrics` struct’ını ve `record` metodunu yaz, `#[cfg(test)]` bloğuna birim testlerini ekle.
- `cargo clippy --workspace --all-targets` çalıştır; çıkan uyarıların ilk beşini güvenli şekilde düzelt, `-D warnings` kullanma ve davranışı değiştirme.

Her istemden sonra ajanın çalıştırdığı komutları ve değişiklikleri inceleyin; özellikle `Cargo.toml` değişikliklerinde bağımlılık sürümlerinin uyumluluğunu kontrol edin.

## Agent’ın iyi yaptığı işler ve dikkat edilmesi gereken tuzaklar

Cursor Agent, tekrarlayan Rust işlerinde oldukça etkilidir: `#[derive(Debug, Clone, Serialize, Deserialize)]` eklemek, `match` yerine `?` operatörü kullanmak, `From` ve `Into` impl’lerini üretmek, modül belgelerini güncellemek ve test iskeletleri oluşturmak. Ayrıca derleyici hatalarını okuyup satır satır düzeltme önerileri sunabilir.

Ancak dikkat edilmesi gereken tuzaklar da vardır. Ajan bazen borrow checker hatasını çözmek için gereksiz `clone()` ekleyebilir; bu, performansı düşürür ve API tasarımını bozabilir. Ömür parametreleri konusunda aşırı karmaşık veya yanlış çözümler önerebilir. `unsafe` blokları konusunda ise güvenlik argümanını atlayabilir; bu nedenle `unsafe` içeren her değişiklik elle incelenmelidir. Workspace projelerinde feature bayrakları ve bağımlılık sürümleri arasındaki etkileşimi gözden kaçırabilir. Clippy uyarılarını bastırmak için `#[allow(...)]` eklemesi de istenmeyen bir davranıştır; bunun yerine gerçek düzeltme istenmelidir.

Aşağıdaki tablo tipik görevler için iyi istem ve denetlenecek noktaları özetler:

| Görev | İyi istem | Denetlenecek nokta |
| Hata yönetimini iyileştirme | `std::io::Error` dönen fonksiyonları `thiserror` tabanlı `AppError` ile değiştir | `From` impl’leri ve hata bağlamı kaybolmasın |
| Clone’ları azaltma | `clone()` çağrılarını referans veya ömürle gider, public API’yi bozma | Gereksiz yere `'static` ömür veya `Cow` eklenmesin |
| Test ekleme | Bu fonksiyon için edge case’leri kapsayan birim testleri yaz | Testler gerçek davranışı yansıtsın, sadece geçsin diye zayıf assertion olmasın |
| Clippy düzeltme | `cargo clippy --all-targets` uyarılarını çöz ama davranışı değiştirme | Gereksiz `allow` eklenmesin |

## Rust’ta test ve doğrulama

Ajan her değişiklikten sonra en azından `cargo check` veya `cargo test` çalıştırmalıdır. Workspace projelerinde `cargo test --workspace --all-targets` kullanmak, tüm cratelerdeki birim ve entegrasyon testlerini kapsar. Belirli bir hatayı izole etmek için `cargo test test_adı -- --nocapture` gibi filtreler kullanılabilir; ajana bu komutu vermek, ilgili testin çıktısını görmesini sağlar.

Clippy ve rustfmt doğrulamanın parçası olmalıdır: `cargo clippy --workspace --all-targets --all-features -- -D warnings` hem tüm hedefleri hem de feature kombinasyonlarını denetler. Format için `cargo fmt --all -- --check` çalıştırıp diff’i gösterin; format değişikliklerini yalnızca gerçekten istediğinizde kabul edin. Eğer ajan bir borrow checker hatasını düzeltemiyorsa, ona önce hatanın nedenini açıkla, sonra üç olası çözümü artı ve eksileriyle listele deyin; bu, aceleci bir `clone()` eklemesinden daha sağlıklıdır.

## Aynı projede birden fazla ajan: AgentVera

AgentVera, birden fazla Cursor Agent oturumunu tek pencerede gerçek terminal panelleriyle çalıştırır. Rust projelerinde bir ajan borrow checker düzeltmesi yaparken diğeri test yazabilir; her ajan kendi git worktree’sinde çalıştığı için dosyalar çakışmaz. Ajanın turu bittiğinde ikinci bir model otomatik kod incelemesi yapar ve bulgular `file:line` olarak işaretlenir, bu da ömür ve sahiplik hatalarını yakalamayı kolaylaştırır. Ayrıca token bütçeleri, derleme/test döngülerini sınırlı tutar; checkpoint’ler kötü bir refactor’u tek tıkla geri almayı sağlar. [Paralel kodlama ajanları için en iyi araçlar](/blog/paralel-yapay-zeka-kodlama-ajani-araclari/) yazısı bu iş akışını genişletir.

## Sonuç

Cursor Agent, Rust projelerinde derleyici geri bildirimini doğrudan kullanarak hızlı iterasyon sağlar; ancak güvenli sonuç, net proje kuralları, küçük adımlar ve titiz diff incelemesiyle gelir. AGENTS.md veya .cursor/rules dosyasını eksiksiz hazırlayın, cargo komutlarını açıkça belirtin ve her değişiklikten sonra test, clippy ve format kontrollerini çalıştırın. Böylece Cursor Agent, Rust geliştirme sürecinizin güvenilir bir parçası olur.

## Sık sorulanlar

**Cursor Agent Rust projesinde nasıl başlatılır?** Proje klasöründe terminalden cursor-agent komutunu çalıştırın. Ajan, AGENTS.md veya .cursor/rules dosyasındaki talimatları okur; Rust projesi için bu dosyaya cargo, clippy ve test komutlarını eklemek ilk adımı hızlandırır.

**Cursor Agent borrow checker hatalarını çözebilir mi?** Evet, derleyici hatalarını okuyup ömür, sahiplik ve referans sorunlarına yönelik düzeltmeler önerir. Ancak önerdiği değişiklikleri diff üzerinde incelemek gerekir; bazen gereksiz clone veya unsafe önerebilir.

**Cursor Agent ile cargo test nasıl çalıştırılır?** Ajana 'cargo test --workspace çalıştır ve başarısız testleri düzelt' gibi bir istem verin. Ajan testleri çalıştırır, hataları okur ve ilgili dosyalarda değişiklik yapar; sonra testleri tekrar çalıştırarak doğrular.

**Cursor Agent’a Rust projesi kuralları nasıl verilir?** Proje köküne AGENTS.md veya .cursor/rules dosyası ekleyin. Bu dosyada build, test, lint ve format komutları ile unwrap kullanımı, hata tipleri ve modül yapısı gibi Rust’a özel kuralları yazın.

---

**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/
