
Cargo คือเครื่องมือ build system และ package manager ที่ทรงพลังของภาษา Rust ซึ่งช่วยให้การสร้างโปรเจกต์ จัดการ dependencies รัน test และ build binary เป็นเรื่องง่าย
1. เริ่มต้นสร้างโปรเจกต์ด้วย Cargo
cargo new hello_cargo cd hello_cargo cargo run
คำสั่งนี้จะสร้างโครงสร้างโปรเจกต์ใหม่พร้อมไฟล์สำคัญ:
Cargo.toml
— metadata และ dependenciessrc/main.rs
— จุดเริ่มต้นของโปรแกรม
2. Cargo Commands ที่ควรรู้
cargo build # คอมไพล์โปรเจกต์ cargo run # รันโปรเจกต์ cargo check # ตรวจสอบ syntax cargo test # รัน unit tests cargo doc --open # เปิดเอกสารของโปรเจกต์ cargo update # อัปเดต dependencies
3. การเพิ่ม Dependency จาก Crates.io
Crates.io คือแหล่งรวม library และแพ็กเกจของ Rust ที่ใหญ่ที่สุด
ตัวอย่างเพิ่ม dependency rand
เพื่อใช้สุ่มเลข
# ในไฟล์ Cargo.toml
[dependencies]
rand = “0.8”
จากนั้นใช้งานได้ทันทีในโค้ด:
use rand::Rng; fn main() { let mut rng = rand::thread_rng(); let n: u8 = rng.gen_range(1..=100); println!("สุ่มได้เลข: {}", n); }
4. เพิ่ม Feature และเวอร์ชันพิเศษ
serde = { version = "1.0", features = ["derive"] }
5. การสร้าง Library Crate ด้วย Cargo
cargo new my_utils --lib
ใน src/lib.rs
เขียนโค้ดของ library
pub fn greet(name: &str) -> String { format!("สวัสดี {}!", name) }
6. การ publish crate สู่ Crates.io
- สมัครบัญชีใน crates.io
- รัน
cargo login
และใส่ token - เพิ่ม metadata ใน
Cargo.toml
- สั่ง publish ด้วย
cargo publish
ตัวอย่าง metadata ที่จำเป็น:
[package] name = "my_utils" version = "0.1.0" edition = "2021" description = "Library สำหรับ greeting" license = "MIT" repository = "https://github.com/yourname/my_utils"
7. Workspaces (โปรเจกต์ที่มีหลาย crate)
สร้าง workspace ด้วยโฟลเดอร์หลักที่มี Cargo.toml
แบบพิเศษ:
[workspace] members = [ "frontend", "backend" ]
เหมาะสำหรับโปรเจกต์ใหญ่ที่มีหลาย service
8. Cargo.lock
ไฟล์นี้ล็อกเวอร์ชันของ dependency เพื่อความสม่ำเสมอในการ build
9. ตัวอย่างโปรเจกต์ใช้หลาย crate
[dependencies] regex = "1.7" chrono = { version = "0.4", features = ["serde"] }
use regex::Regex; use chrono::Utc; fn main() { let now = Utc::now(); let re = Regex::new(r"\d+").unwrap(); println!("ตอนนี้คือ: {}", now); println!("123abc = {:?}", re.is_match("123abc")); }
10. รวมแหล่งเรียนรู้ Cargo & Crates
- Official Cargo Book
- Crates.io — Rust Package Registry
- Lib.rs — รวม alternative crate UI
- Docs.rs — ดูเอกสารของ crate ทุกตัว
สรุป
Cargo เป็นเพื่อนแท้ของนักพัฒนา Rust และ crates.io คือขุมทรัพย์ของ library คุณภาพ การเข้าใจการใช้งานและสร้าง crate เองเป็นขั้นตอนสำคัญที่จะทำให้คุณพัฒนาโปรแกรมได้คล่องและเป็นมืออาชีพมากขึ้น
📌 คำค้น SEO
cargo rust, rust package manager, rust dependency, crate.io rust, สร้าง library rust, cargo publish crate, rust crate คืออะไร, rust workspace, cargo toml config, rust crate ไทย
เผยแพร่โดย poolsawat.com