Cargo Paket Yöneticisi: Bağımlılıklar, Build ve Yayınlama

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Rust ekosisteminde kod yazmak, sadece sözdizimine (syntax) hakim olmak değildir; aynı zamanda bu ekosistemi ayakta tutan devasa bir motoru kullanmayı öğrenmektir. Bu motorun adı Cargo.

Cargo; bir paket yöneticisinden çok daha fazlasıdır. O bir derleme sistemi, test yürütücüsü ve dökümantasyon aracıdır. C++ dünyasındaki karmaşık Makefile süreçlerini veya kütüphane çakışmalarını Rust dünyasında görmemenizin tek sebebi Cargo'dur.


1. Cargo.toml: Projenin Manifestosu​

Her Cargo projesinin kök dizininde bir Cargo.toml dosyası bulunur. Bu dosya, projenizin kimlik kartıdır. Rust dünyasında paketlere "Crate" (Sandık) denir ve tüm bu sandıklar burada listelenir.

Kod:
[package]

name = "borsa_takip"

version = "0.1.0"

edition = "2021"

[dependencies]

serde = "1.0" # JSON işlemleri için popüler bir kütüphane

tokio = { version = "1.0", features = ["full"] } # Asenkron çalışma motoru

  • [package]: Projenin adı, versiyonu ve hangi Rust edisyonunu kullandığını belirtir.
  • [dependencies]: Projenizin ihtiyaç duyduğu dış kütüphaneleri buraya eklersiniz. Cargo, projenizi derlemeden önce bu kütüphaneleri crates.io üzerinden otomatik olarak indirir.

2. Bağımlılık Yönetimi ve Cargo.lock​

Bir kütüphane eklediğinizde Cargo, o kütüphanenin ihtiyaç duyduğu diğer kütüphaneleri de zincirleme olarak indirir. Peki ya projenizi bir yıl sonra tekrar derlemek isterseniz ve kütüphaneler güncellenmişse ne olur?

İşte burada Cargo.lock devreye girer.

  • Cargo.toml: Siz ne istediğinizi yazarsınız (esnek).
  • Cargo.lock: Cargo, tam olarak hangi sürümün indirildiğini buraya not eder (sabit).
Bu sayede projeniz başka bir bilgisayarda derlendiğinde, tam olarak aynı sürümdeki kütüphaneler kullanılır ve "benim makinemde çalışıyordu" sorunu ortadan kalkar.


3. Derleme (Build) Süreçleri​

Cargo, kodu nasıl derleyeceğinize dair size iki temel profil sunar:

Geliştirme Modu (Debug)​

Hızlıca test yapmak için kullanılır. Derleyici kodu çok optimize etmez, bu sayede derleme süresi kısadır ancak çalışma hızı düşüktür.

Bash:
cargo build

Yayınlama Modu (Release)​

Programınızı son kullanıcıya sunacağınız zaman kullanılır. Derleyici kodu optimize etmek için daha fazla zaman harcar, sonucunda ise çok daha hızlı çalışan, küçük bir dosya üretir.

Bash:
cargo build --release

Derlenen dosyalar target/release veya target/debug klasöründe yer alır.


4. Temel Cargo Komutları​

Geliştirme sürecinde en çok kullanacağınız komutlar şunlardır:

  • cargo run: Kodunuzu derler ve hemen ardından çalıştırır.
  • cargo check: Kodu derlemez, sadece hata olup olmadığını kontrol eder. Çok daha hızlıdır, bu yüzden kod yazarken sıkça kullanılır.
  • cargo test: Projenizdeki tüm testleri çalıştırır.
  • cargo doc --open: Projeniz ve kullandığınız tüm kütüphaneler için yerel bir dökümantasyon sayfası oluşturup tarayıcıda açar.

5. Projeyi Yayınlama (Publish)​

Kendi yazdığınız bir kütüphaneyi tüm dünya ile paylaşmak istiyorsanız, Cargo bunu çok kolaylaştırır.

  1. Öncelikle crates.io üzerinde bir hesap oluşturun.
  2. Terminalden cargo login <token> ile giriş yapın.
  3. Ve son adım:

    Bash:
    cargo publish
Bu komutla birlikte kodunuz paketlenir, doğrulanır ve Rust topluluğunun kullanımına sunulur.


Özet​

Cargo, Rust ile çalışmayı keyifli hale getiren gizli kahramandır. Bağımlılıkları manuel yönetmekle uğraşmazsınız, derleme ayarlarıyla vakit kaybetmezsiniz. Her şey standarttır; bir Rust projesini açtığınızda nerede ne olduğunu bilirsiniz.
 
Geri
Üst