
Crates
Crate merupakan kode singkat (dapat didefinisikan kecil) pada bahasa rust. Terdapat dua bentuk crate, yaitu binary crate dan library crate. Binary crate dapat dieksekusi secara langsung dan memiliki fn main, maka dari itu tutorial yang telah saya tulis sebelumnya termasuk binary crates.
fn main adalah gerbang masuk dari kode rust, tanpanya kita tidak akan bisa mengeksekusi program.
Library crates tidak memiliki fn main sehingga tidak bisa dieksekusi secara langsung. Tetapi, dapat didefinisikan di proyek lain. Contohnya rand yang mengahasilkan nomor acak. Biasanya kata “crates”, mengacu pada library crates.
cargo new proyek_baru
Creating binary (application) `proyek_baru` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
ls proyek_baru
Cargo.toml src
Package
Package adalah kumpulan dari crates yang memberikan set fungsionalitas tertentu. Package memiliki file bernama Cargo.toml yang digunakan untuk mendefinisikan library crate yang dibutuhkan dalam program. Masih ingat dengan cargo? itu merupakan sebuah packages yang didalamnya terdapat binary dan library crate.
Gambar 1. Pembuatan proyek dengan fungsi cargo
Ketika kita membuat sebuah proyek baru dengan perintah cargo new proyek_baru (baris 1) lalu mengeceknya dengan ls proyek_baru (baris 5) akan didapatkan file Cargo.toml dan folder src tempat file main.rs disimpan.
Secara otomatis cargo akan mengetahui bahwa file yang terdapat pada src/main.rs adalah binary crate root dan src/lib.rs adalah library crate root. Pada proyek_baru hanya terdapat satu jenis crate, yaitu library crates yang terletak di src/main.rs.
Kesimpulan
Crate dan package memiliki peran besar dalam memanajemen proyek yang telah kita buat. Pemahaman mengenai crate yang berperan sebagai sebuah alat menawarkan efisiensi dan fleksibilitas. Kita tidak perlu mengulang kode yang telah ditulis atau membuat sebuah fungsi dari awal.