- vừa được xem lúc

Thiết lập với Rust: Từ cài đặt đến Hello World

0 0 5

Người đăng: Quan Troy

Theo Viblo Asia

Mở đầu

Rust là một ngôn ngữ lập trình khá "trẻ" và mạnh mẽ, được phát triển bởi Mozilla từ năm 2010. Rust nổi bật với khả năng quản lý bộ nhớ an toàn, giúp loại bỏ các lỗi truy cập và rò rỉ bộ nhớ. Ngôn ngữ này hỗ trợ xử lý đồng thời hiệu quả và lập trình hệ thống mạnh mẽ, phù hợp cho các dự án từ ứng dụng web đến phần mềm hệ thống. Với cộng đồng hỗ trợ lớn và tài liệu phong phú, Rust đã đứng đầu trong bảng xếp hạng các ngôn ngữ lập trình được yêu thích nhất của Stack Overflow Developers Survey trong nhiều năm liền. Theo Stack Overflow Developer Survey 2024 mới được công bố, Rust vẫn tiếp tục là ngôn ngữ lập trình được yêu thích nhất.

Bài viết này, chúng ta cùng nhau:

  1. Cài đặt Rust trên các hệ điều hành khác nhau.
  2. Giới thiệu một số extension, tool cần thiết để bắt đầu code Rust.

Cài đặt

Cài Rust trên Linux / Mac

Việc cài Rust trên Linux/ Max rất đơn giản, chỉ bằng 1 command.

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

Nếu thành công bạn sẽ thấy dòng chữ "Rust is installed now. Great!" trong Terminal.
Và ở lần login vào máy tiếp theo sẽ tự động thêm PATH cần thiết để chạy Rust, nếu bạn muốn dùng Rust ngay thì cần thêm thủ công PATH vào shell bạn đang dùng ví dụ:

  • Bash là file .bashrc
  • Zsh thì dùng file .zshrc
//thêm vào cuối file
source $HOME/.cargo/env

Sau đó restart lại Terminal.

Kiểm tra version Rust

rustc --version

Nếu không có lỗi gì, Terminal sẽ hiện version Rust. Như của mình đang là rustc 1.79.0 (129f3b996 2024-06-10)

Cài Rust trên Windows

Có 2 cách:
1: Cài qua WSL (recommend):
Nếu chưa có WSL, bạn có thể xem hướng dẫn cài WSL. Sau đó, làm các bước như hệ điều hành Linux ở trên.

2: Cài Visual Studio C++ Build tools
Sau khi cài Visual Studio C++ Build tools xong, bước tiếp theo download và chạy rustup-init.exe.

Cài Rust Analyser

Rust Analyser là một công cụ phân tích code cho Rust. Nó cung cấp các tính năng như kiểm tra lỗi, đề xuất sửa đổi, và nhiều tính năng khác để hỗ trợ phát triển Rust một cách hiệu quả hơn.

Nếu dùng VS Code thì bạn chỉ cần tải extension Rust Analyser. Ngoài ra, nếu sử dụng IDEs hay code editors nào khác thì của bạn thiết lập theo hướng dẫn ở https://rust-analyzer.github.io/manual.html

Hello world

Cùng mình viết chương chương trình đơn giản đầu tiên với Rust. Tạo 1 file có đuôi .rs bất kì

touch hello.rs

Mở file mới tạo với editor của bạn và thêm đoạn code sau:

fn main() { println!("Hello world!!!");
}

Biên dịch và run code

# biên dịch code Rust sang mã máy ở file `hello` trong cùng thư mục
rustc hello.rs # thực thi file. Output: Hello world!!!
./hello # or .\hello.exe on Windows

Do đã được biên dịch ra mã máy, nên khi gửi file hello cho bất kì bất kỳ máy tính cũng có thể chạy được mà không cần phải cài đặt Rust trên máy tính đó.

Rustc là đủ đối với các dự án đơn giản, nhưng khi phát triển dự án thực sự, bạn sẽ cần công cụ quản lý tất cả các tùy chọn và giúp việc chia sẻ code của mình trở nên dễ dàng. Tiếp theo, chúng cùng tìm hiểu Cargo, công cụ này sẽ giúp bạn viết các chương trình Rust "real-world".

Cargo

Cargo là build system và package manager của Rust. Cargo xử lý rất nhiều tác vụ cho bạn, chẳng hạn như build code, quản lý các dependencies tương tự như Npm trong Nodejs hay Composer của Laravel...

Một số lệnh cơ bản:

  1. cargo new hello_cargo: Khởi tạo dự án mới bằng Cargo. Sau khi chạy sẽ tạo thư mục dự án mới theo struct:

    hello_cargo
    │ └───src
    │ │ main.rs
    │ └───taget
    | │ ...
    |
    |--- Cargo.lock
    |--- Cargo.toml 

    Trong đó:

    • src/main.rs: Đây là file code chính cho dự án Rust của bạn.
    • target/: Thư mục này do Cargo tạo khi build project, chứa file compiled binary và artifacts. Mặc định, nó bị Git ignore ở file .gitignore.
    • cargo.lock: File này được generate bởi Cargo, giúp quản lý version của các dependencies tương tự file package.json hay composer.json
    • cargo.toml: Giúp quản lý package trong Rust. File này chứa metadata của dự án như tên, version và dependencies
  2. cargo run: Biên dịch và thực thi code.

    Do khi khởi tạo dự án bằng Cargo nên file main.rsđã có sẵn đoạn code Hello World

    //src/main.rs
    fn main() { println!("Hello, world!");
    }
    

    Khi chạy cargo run ở thư mục root của dự án sẽ biên dịch code và thực thi code luôn.

    cargo run
    //output Compiling hello_cargo v0.1.0 (/home/<path>/hello_cargo) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s Running `target/debug/hello_cargo`
    Hello, world!
    
  3. cargo build: Biên dịch code ở file main.rs ra file binary ở target/debug/hello_cargo (hoặc target\debug\hello_cargo.exe trên Windows)

    cargo build
    //Ouput Compiling hello_cargo v0.1.0 (/home/<path>/hello_cargo) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.09s
    

    Bạn có thể chạy file này bằng lệnh

    ./target/debug/hello_cargo # or .\target\debug\hello_cargo.exe trên Windows
    Hello, world!
    
  4. cargo check: Lệnh này kiểm tra nhanh lỗi trong code của bạn để đảm bảo mã được biên dịch nhưng không tạo ra file binary như cargo build

    cargo check Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.02s
    

    Thông thường cần chạy cargo check thường xuyên để sớm phát hiện lỗi và đảm bảo code có thể biên dịch. Chỉ chạy cargo build khi muốn dùng file binary.

Ngoài ra còn rất nhiều lệnh cargo khác bạn tham khảo ở đây để tìm hiểu thêm.

Kết Luận

Trong bài viết này, chúng ta đã cùng nhau tìm hiểu cách cài đặt Rust, viết chương trình "Hello World", và khám phá công cụ Cargo. Nếu bạn cảm thấy hứng thú, đừng ngần ngại bắt đầu ngay với Rust. Hãy cài đặt, thử viết vài dòng code, và khám phá thêm các tính năng thú vị mà Rust mang lại. Happy Rustaceans!

Cảm ơn bạn đã dành thời gian đọc bài viết này.

Tài Liệu Tham Khảo

https://doc.rust-lang.org/book/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chuyện cái comment

Chuyện cái comment. Chuyện rằng, có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm.

0 0 31

- vừa được xem lúc

Đừng đánh nhau với borrow checker

Đừng đánh nhau với borrow checker. TL;DR: Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó .

0 0 28

- vừa được xem lúc

Chuyện biểu diễn ma trận trên máy tính

Chuyện biểu diễn ma trận trên máy tính. Cách đây mấy hôm mình có share cái screenshot trên Facebook, khoe linh tinh vụ mình đang viết lại cái CHIP-8 emulator bằng Rust.

0 0 43

- vừa được xem lúc

Rust và Lập trình Web

Rust và Lập trình Web. Bài viết được dịch lại từ bản gốc "Rust for the Web" đăng tại phiên bản blog tiếng Anh của mình.

0 0 36

- vừa được xem lúc

Viết ứng dụng đọc tin HackerNews bằng Rust

Viết ứng dụng đọc tin HackerNews bằng Rust. Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết co

0 0 24

- vừa được xem lúc

Cài đặt Rust trên Arch Linux

Cài đặt Rust trên Arch Linux. Việc cài đặt Rust trên môi trường Arch Linux khá là đơn giản.

0 0 39