Temel Kavramlar — Ownership & Borrowing
Rust'ın kalbi: sahiplik, move semantiği, ödünç alma ve borrow checker. Her değerin tek sahibi, aliasing XOR mutation kuralı ve derleyicinin zorladığı RAII. C++ unique_ptr ve manuel bellek yönetimiyle karşılaştırmalı.
Lifetime'lar
'a notasyonu, lifetime elision'ın üç kuralı, struct'larda referans tutma ve 'static. C'deki dangling pointer'ı derleme zamanında imkânsız kılan sistem — neden bazen yazmak zorunda kalır, çoğu zaman kalmazsın.
Hata Yönetimi — Option, Result, ?
Null'sız, exception'sız hata akışı. Option ve Result tipleri, ? operatörü, panic! ve From ile hata dönüşümü. Hatanın tip sistemine taşınması — C errno ve C++ exception'larıyla karşılaştırmalı.
Cargo & Ekosistem
Tek araçta build, test, paket ve format. cargo, rustup, crates.io, clippy, rustfmt ve rust-analyzer. make/cmake/autotools dünyasından gelenler için entegre Rust araç zinciri ve workspace yönetimi.
Trait & Generics
Kalıtımsız polimorfizm. Trait'ler (interface), generics, trait bound'lar ve static vs dynamic dispatch. C++ virtual/template ve abstract class'larla karşılaştırmalı — kalıtımın neden yerini composition'a bıraktığı.
Enum & Pattern Matching
Veri taşıyan enum'lar (sum type), zorunlu exhaustive match, if let / while let / let else ve destructuring. Geçersiz durumu tip sistemiyle imkânsız kılmak — C union ve switch/case ile karşılaştırmalı.
Koleksiyonlar & Iterator'lar
Vec, String, HashMap ve iterator zincirleri. Lazy adapter'lar (map/filter/zip), tüketiciler (collect/fold/sum) ve zero-cost abstraction — elle yazılmış döngüyle aynı assembly. C++ STL container/algorithm'leriyle karşılaştırmalı.
Closures — Fn, FnMut, FnOnce
Capture eden anonim fonksiyonlar. Capture semantiği, move closure ve Fn / FnMut / FnOnce trait üçlüsü; closure'ı parametre alma ve döndürme. C++ lambda capture'larıyla ([=], [&], [this]) karşılaştırmalı.
Smart Pointer'lar — Box, Rc, Arc, RefCell
Heap tahsisi, paylaşımlı sahiplik ve iç değişebilirlik. Box, Rc/Arc, RefCell/Cell, Weak ve Rc<RefCell> deseni; referans döngüsü kaçınma. C++ unique_ptr/shared_ptr ve const_cast ile karşılaştırmalı karar tablosu.
Eşzamanlılık — Thread, Send/Sync, Channel
Korkusuz paralellik. Thread'ler, channel ile mesajlaşma, Mutex/Arc ile paylaşımlı durum ve Send/Sync trait'leri. Veri yarışının derleme zamanında imkânsızlığı — C pthread ve manuel kilitlemeyle karşılaştırmalı.
Async & Tokio
async/await, Future trait ve tokio runtime. Task spawn, async I/O, join!/select! ve Send-across-await tuzakları; async vs thread kararı. C epoll/callback ve thread-per-connection ile karşılaştırmalı.
Hata Crate'leri — anyhow vs thiserror
Uygulama ve kütüphane için hata tasarımı. thiserror ile tipli, eşleştirilebilir hata enum'u; anyhow ile dinamik hata + context. Ne zaman hangisi — std Error trait'i üzerine ergonomik katmanlar.
Modüller & Crate Organizasyonu
mod, use, pub görünürlük, crate kökü ve workspace. Modül ağacı, dosya yerleşimi, pub use ile temiz public API ve çok-crate projeler. C header/translation unit ve include modeliyle karşılaştırmalı.
Test Yazma — #[test], doctest, criterion
Dile gömülü test çatısı. #[test] ve assert makroları, entegrasyon testleri, doctest; criterion ile istatistiksel benchmark, proptest ile property testing. gtest/CTest kurmadan, sıfır altyapıyla.
Makrolar — macro_rules! & Derive
Bildirimsel (macro_rules!) ve prosedürel makrolar, türetme (derive) makroları. Fragment belirteçleri, tekrar, hijyen ve cargo expand. C önişlemci #define ile karşılaştırmalı — hijyenik ve AST-farkında.
unsafe & FFI
unsafe blokların beş gücü, raw pointer'lar, extern "C" ile C kütüphanesi çağırma ve bindgen. Güvenli soyutlama kabuğu, UB tuzakları ve Miri ile doğrulama. C ABI ile birebir, sorumlu kullanım.
C/C++'tan Rust'a Geçiş Rehberi
Kavram eşleme tablosu, kas hafızası tuzakları ve zihniyet değişimi. Araç eşlemesi, anti-pattern'ler, string dünyası ve öğrenme yol haritası — deneyimli sistem programcısı için hızlandırılmış geçiş haritası.
Aynı üslupla, aynı derinlikte — C/C++ karşılaştırmalı.
Aramanla eşleşen rehber bulunamadı.