Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Özel Komutlarla Cargo’yu Genişletme

Cargo, kendisinde değişiklik yapmanıza gerek kalmadan onu yeni alt komutlarla genişletebileceğiniz şekilde tasarlanmıştır. $PATH çevre değişkeninizdeki dizinlerde cargo-birsey adında bir ikili dosya varsa, cargo birsey yazarak onu sanki bir Cargo alt komutuymuş gibi çalıştırabilirsiniz. Bu tür özel komutlar, cargo --list komutunu çalıştırdığınızda da listelenir. Uzantıları cargo install ile kurup ardından tıpkı yerleşik Cargo araçları gibi çalıştırabilmek, Cargo tasarımının son derece kullanışlı bir avantajıdır!

Not: Rust ekosisteminde geliştiricilerin günlük iş akışlarını hızlandırmak için cargo install ile kurup sıkça kullandığı pek çok özel Cargo alt komutu bulunur:

  • cargo-edit (cargo upgrade ve yerleşik cargo add): Cargo.toml dosyasını elle düzenlemeden komut satırından bağımlılık yönetmeyi sağlar; topluluk uzantısı olarak doğan cargo add ve cargo remove komutları yoğun ilgi üzerine Cargo’ya yerleşik olarak dahil edilirken, bağımlılıkları üst sürümlere yükselten cargo upgrade komutu bu paketle sunulmaya devam etmektedir.
  • cargo-watch (cargo watch) ve bacon: Projenizdeki kaynak dosyaları izleyerek her değişiklikte cargo check, cargo test veya cargo run gibi komutları otomatik olarak yeniden çalıştırır. cargo-watch artık yalnızca bakım modunda olduğundan, bugün pek çok geliştirici aynı işi gören bacon aracını tercih etmektedir.
  • cargo-nextest (cargo nextest): Her testi yalıtılmış ayrı bir süreçte paralel olarak yürüten yeni nesil test koşucusudur; özellikle büyük çalışma alanlarında standart cargo test komutuna kıyasla çok daha hızlı çalışma süreleri ve okunaklı hata raporları sunar.
  • cargo-audit ve cargo-deny: Cargo.lock dosyasındaki bağımlılık ağacını RustSec güvenlik veri tabanına karşı tarayarak bilinen güvenlik açıklarını (cargo audit), ayrıca lisans uyumluluğunu, yasaklı paketleri ve mükerrer bağımlılık sürümlerini (cargo deny) denetler.
  • cargo-expand (cargo expand): #[derive(...)] özniteliklerinin ve makroların derleyici tarafından açılmış (genişletilmiş) Rust kaynak kodunu göstererek makroların perde arkasında ne ürettiğini incelemenizi sağlar.
  • cargo-bloat (cargo bloat): Derlenen çalıştırılabilir ikili dosyada hangi crate’lerin ve fonksiyonların en fazla yer kapladığını analiz ederek ikili dosya boyutunu iyileştirmenize yardımcı olur.

Özet

Cargo ve crates.io aracılığıyla kod paylaşmak, Rust ekosistemini pek çok farklı görev için kullanışlı kılan temel unsurlardan biridir. Rust’ın standart kütüphanesi küçük ve kararlıdır; ancak crate’leri paylaşmak, kullanmak ve dilin kendisinden bağımsız bir takvimde geliştirmek kolaydır. İşinize yarayan kodları crates.io üzerinde paylaşmaktan çekinmeyin; büyük olasılıkla başkalarının da işine yarayacaktır!