[Rust] Get Started

Visarut Junsone
Lazy-Dev
Published in
3 min readSep 15, 2019

ในวันนี้เราจะมาพูดถึงเรื่องใหม่สำหรับ Blog นี้กัน แต่ก็ไม่ได้ใหม่ในโลกนี้ซะทีเดียว นั้นก็คือเรื่อง ……….

Rust นั้นเอง

Rust นั้นเป็น ภาษา Programming ที่มุ่งเน้นไปในทางด้าน ความปลอดภัย โดยเฉพาะความปลอดภัยด้านการทำ Concurrency. และอีกทั้งยังมี Syntax คล้ายกับ C++ อีกด้วย คนที่เริ่มต้นมาจากการเรียนด้วย ภาษา C++ ก็อาจจะเรียนรู้ Syxtax ของ Rust ได้ไม่ยากเท่าไหร่ ← ความเห็นส่วนตัวล้วนๆ

แต่จุด Peak ที่โด่งดังที่สุดของภาษานี้ที่ยังไงใครก็ต้องพูดถึงซึ่งก็คือในเรื่องของการจัดการ memory ไม่ว่าจะเป็นด้านความปลอดภัยหรือด้าน Performance สามารถ run บน Embeded device ก็ยังได้

เอาภาษา Rust ไปทำอะไรได้บ้าง?

  1. สร้าง Command-line app
  2. ทำ WebAssembly
  3. ทำ Networking
  4. สร้าง Program แล้ว รันบน Embedded device

เอาละเราเกริ่นกันมาพอสมควรแล้ว รันมาลอง install แล้วhello-world กันดีกว่า

Installation

สำหรับคนที่ใช้ macOS, Linux หรืออะไรก็ตามที่เป็น Unix base สามารถ install ได้ด้วยคำสั่งนี้ไปเลย

curl https://sh.rustup.rs -sSf | sh

แต่สำหรับคนที่ใช้ Windows จะต้องโหลดตัว Installer มา แต่ถ้า Windows ของคุณมี Subsystem สำหรับ Linux ก็สามารถใช่คำสั่งเดียวกันได้

ถ้าคนที่ใช้ Windows เข้า Links นี้ไปจะเห็นปุ่มให้ Download installer เลย แต่ถ้าเป็น macOS, Linux หรืออะไรก็ตามที่เป็น Unix base จะมองไม่เห็น จะเห็นเพียง คำสั่งที่กล่าวไปข้างต้น

พอรันคำสั่งก็จะมีหน้าตา Prompt รอให้เราเลือกว่าจะลงแบบ Default ไปเลยหรือ Customize หรือยกเลิก สำหรับผมเลือก 1 เพื่อ Default installation

พอเสร็จแล้วก็จะได้หน้าตาแบบรูปด้านบนมา จะเห็นว่ามีคำอธิบายอยู่ว่า จะมีให้เรารันคำสั่งเพื่อให้มี Cargo’s bin directory ใน PATH environment ด้วยการรันคำสั่ง

source $HOME/.cargo/env

แล้วไอเจ้า Cargo นี้มันคืออะไรละ?

มันคือ Build tool และ Package manager ของ Rust นั้นเอง เจ้าตัว Cargo เนี่ยทำได้หลายอย่างเลย เช่น

  1. build project ด้วยคำสั่ง cargo build
  2. run project ด้วยคำสั่ง cargo run
  3. test project ด้วยคำสั่ง cargo test
  4. build documentation สำหรับ project ด้วยคำสั่ง cargo doc
  5. publish library ไปที่ create.io ด้วย cargo publish

อยาก Test version ของ cargo ใช้ไหมละ รัน

cargo --version

Editor สำหรับ Rust

  1. VS Code
  2. Sublime text 3
  3. ATOM
  4. IntelliJ IDEA
  5. ECLIPSE
  6. VIM
  7. EMACS

แต่ตัวผมจะเลือกใช้ VS Code เพราคุ้นเคยที่สุด แล้วต้องทำอะไรใน VS Code บ้าง

  1. Ctrl + P เพื่อพิมพ์ Command ด้านล่าง
ext install rust-lang.rust

เสร็จละ มีข้อเดียว เพื่อลง Extension ของ Rust

มาสร้าง Hello world กันเถอะ

เริ่มต้นด้วยคำสั่ง

cargo new hello-rust

สร้าง เรียบร้อย แล้วเราได้อะไรมาบ้างละ

cargo.toml เป็น manifest file สำหรับ Rust เป็นไฟล์ที่เอาไว้เก็บ metedata ของ Ptoject รวมไปถึง Dependencies ด้วย

src/main.rs เป็นที่ๆเราจะเขียน Application ของเรากัน

แต่ลืมอธิบายไป ว่า คำสั่ง cargo new เนี่ยมันจำทำการสร้าง Hello, world project ให้กับเรา และเราสามารถรัน Program นี้ด้วยคำสั่ง cargo run แต่อย่าลืมเข้าไปใน Directory ของ Projectนั้นๆ ด้วยนะ

ก็จะได้อะไรออกมาประมานนี้จาก Code ที่คำสั่ง cargo new generate ให้

อยากใส่ Dependencies ทำยังไงดี?

ให้ไปที่ไฟล์ Cargo.toml แล้วก็จะเห็นหน้าตาเป็นแบบนี้

แล้วจากนั้นเราก็แค่ใช้ชื่อ dependencies กับ version ที่ต้องการภายใต้หัวข้อ dependencies สมมุติว่าเราอยากลง ferris-says

ก็จะได้เป็นแบบนี้ หลังจากนั้นให้รัน cargo build เพื่อที่ cargo จะได้ install dependency ให้เราก็จะเห็นอะไรประมาณรูปด้านล่างนี้

มาลองใช้ Dependency ที่เราเพิ่งลงกันเถอะ

use ferris_says::say;

ใช้ Code ด้านบนเพื่อเรียกใช้ Dependency

use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let out = b"Hello fellow Rustaceans!";
let width = 24;
let mut writer = BufWriter::new(stdout.lock());
say(out, width, &mut writer).unwrap();
}

Code ด้านบนนี้หาได้จากเว็บ get-started ที่ให้ไปข้างต้น เมื่อเรารันก็จะได้อะไรน่ารักๆ แบบนี้

ยาวเหมือนกันนะเนี่ย เริ่มขี้เกียจตั้งแต่เขียนได้ครึ่งทาง แต่อยากเขียนให้จบเพื่อผู้อ่านทุกท่าน สำหรับรอบนี้ ลาแล้วจ้า

--

--

Visarut Junsone
Lazy-Dev

I’m Full-Stack Developer. ReactJS Golang C# Javascript C++ PHP and learning a lot more. Not lazy as it name. “Lazy-Dev”