Ö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 upgradeve yerleşikcargo 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ğancargo addvecargo removekomutları yoğun ilgi üzerine Cargo’ya yerleşik olarak dahil edilirken, bağımlılıkları üst sürümlere yükseltencargo upgradekomutu bu paketle sunulmaya devam etmektedir.cargo-watch(cargo watch) vebacon: Projenizdeki kaynak dosyaları izleyerek her değişikliktecargo check,cargo testveyacargo rungibi komutları otomatik olarak yeniden çalıştırır.cargo-watchartık yalnızca bakım modunda olduğundan, bugün pek çok geliştirici aynı işi görenbaconaracı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 standartcargo testkomutuna kıyasla çok daha hızlı çalışma süreleri ve okunaklı hata raporları sunar.cargo-auditvecargo-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!