Mengelola Dependensi dengan Crate
Pahami cara Cargo mengelola crate eksternal (pustaka) dan cara menerbitkan crate Anda sendiri untuk digunakan komunitas.
Mengelola Dependensi dengan Crate adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 3 pelajaran total.
Apa Itu Crate & Cargo?
Dalam Rust, crate adalah unit dasar kompilasi dan distribusi. Anggaplah crate sebagai paket atau pustaka yang berisi kode Anda.
Cargo adalah pengelola paket dan sistem pembangunan resmi Rust. Cargo menangani segala hal, mulai dari membuat proyek baru hingga mengelola dependensi, mengompilasi kode, dan menjalankan pengujian. Cargo adalah sahabat terbaik Anda dalam pengembangan Rust!
Berkas `Cargo.toml`
Setiap proyek Rust yang dikelola oleh Cargo memiliki berkas Cargo.toml di direktori akarnya. Ini adalah berkas manifes proyek Anda, yang ditulis dalam TOML (Tom's Obvious, Minimal Language).
Berkas ini mendefinisikan metadata tentang proyek Anda dan, yang paling penting, mencantumkan dependensinya.
Konfigurasi Proyek
Bagian [package] dalam Cargo.toml menyimpan informasi penting tentang crate Anda:
- name: Nama crate Anda.
- version: Versi saat ini.
- edition: Edisi Rust yang akan digunakan (misalnya, 2021).
- authors: Pembuatnya.
Detail ini sangat penting, terutama jika Anda berencana menerbitkan crate Anda.
Menambahkan Dependensi
Untuk menggunakan pustaka eksternal (crate lain) dalam proyek, Anda mencantumkannya di bawah bagian [dependencies] dalam Cargo.toml.
Saat Anda membangun proyek, Cargo secara otomatis mengunduh dan mengompilasi dependensi ini dari crates.io, registri paket pusat Rust.
Sintaks Dependensi
Berikut cara mendeklarasikan dependensi dalam Cargo.toml Anda:
[dependencies]
rand = "0.8.5"Ini memberi tahu Cargo untuk mengambil versi 0.8.5 dari crate rand. Anda juga dapat menentukan rentang versi atau jalur lokal.
Contoh Penggunaan Crate
Mari tambahkan crate rand untuk menghasilkan angka acak. Pertama, pastikan rand = "0.8.5" ada di [dependencies] Anda. Kemudian, gunakan crate tersebut dalam kode:
use rand::Rng; // Import the Rng trait
fn main() {
let mut rng = rand::thread_rng(); // Create a random number generator
let n: u8 = rng.gen_range(1..=10); // Generate a number between 1 and 10 (inclusive)
println!("Your random number is: {}", n);
}Berkas `Cargo.lock`
Setelah membangun proyek dengan dependensi, Cargo membuat berkas Cargo.lock. Berkas ini mencatat versi persis dari semua dependensi langsung dan transitif yang digunakan dalam proyek Anda.
Berkas ini memastikan semua orang yang mengerjakan proyek menggunakan versi dependensi yang sama, sehingga menghasilkan pembangunan yang dapat direproduksi di berbagai lingkungan.
Memperbarui Dependensi
Seiring waktu, dependensi Anda mungkin merilis versi baru dengan perbaikan kesalahan atau fitur baru. Untuk memperbaruinya, gunakan perintah cargo update.
Perintah ini memeriksa crates.io untuk menemukan versi lebih baru yang sesuai dengan persyaratan versi dalam Cargo.toml, lalu memperbarui Cargo.lock sesuai kebutuhan.
Menerbitkan Crate Anda Sendiri
Ingin membagikan kode Rust Anda yang hebat kepada komunitas? Anda dapat menerbitkan crate Anda sendiri ke crates.io!
Sebelum menerbitkannya, pastikan Cargo.toml Anda memiliki metadata yang tepat seperti tautan description, license, dan repository.
Perintah Publikasi
Prosesnya sederhana:
- Masuk: Gunakan
cargo login <token>dengan token API dari crates.io. - Publikasikan: Jalankan
cargo publishdari direktori akar proyek Anda.
Cargo akan melakukan pemeriksaan, mengemas kode Anda, dan mengunggahnya agar dapat digunakan oleh orang lain!
Pemeriksaan Cepat: Cargo & Crate
Pernyataan manakah berikut ini yang benar tentang pengelolaan paket Rust dengan Cargo?
Ringkasan: Mengelola Dependensi
Anda telah mempelajari bahwa Cargo sangat penting untuk mengelola proyek Rust dan dependensinya!
- Crate adalah paket kode yang dapat digunakan kembali.
- Cargo.toml mendefinisikan proyek dan dependensinya.
- Cargo.lock memastikan build yang dapat direproduksi.
- Anda dapat mempublikasikan crate Anda sendiri ke crates.io.
Sistem yang canggih ini membuat berbagi dan menggunakan kembali kode dalam Rust menjadi sangat efisien dan andal.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengelola Dependensi dengan Crate” gratis?
Ya — teks lengkap “Mengelola Dependensi dengan Crate” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Mengelola Dependensi dengan Crate”?
Pahami cara Cargo mengelola crate eksternal (pustaka) dan cara menerbitkan crate Anda sendiri untuk digunakan komunitas. Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?
Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.
Berapa lama pelajaran “Mengelola Dependensi dengan Crate” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?
Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengatur Kode dengan Modul
- Mengelola Dependensi dengan Crate
- Penanganan Galat yang Tangguh dengan `Result`