آموزش جامع Rust – بخش اول: مقدمه، نصب و شروع سریع
زبان برنامهنویسی Rust در ابتدا توسط مهندسی به نام گریدن هور (Graydon Hoare) در سال ۲۰۰۶ توسعه داده شد. بعدها، شرکت Mozilla به توسعه این زبان کمک کرد و آن را به سطحی رساند که در سال ۲۰۱۵ نسخه پایدار اول آن منتشر شد.
هدف اصلی از طراحی Rust، حل برخی از چالشهای مزمن زبانهای سیستمی مانند C و C++ بود. زبانهایی که سرعت بسیار بالایی دارند اما به دلیل نداشتن کنترل خودکار بر حافظه، اغلب با مشکلاتی مانند بافر اورفلو، نشت حافظه و شرایط رقابتی در پردازشهای همزمان (race conditions) مواجهاند.
Rust طراحی شده تا:
- به اندازهی C++ سریع باشد،
- اما در عین حال، از بسیاری از خطاهای رایج در مدیریت حافظه جلوگیری کند،
- و این کار را بدون نیاز به garbage collector انجام دهد.
به زبان ساده، Rust زبان برنامهنویسیای است که کنترل کامل سیستم را در اختیار برنامهنویس میگذارد، ولی در عین حال با ابزارهایی مثل مالکیت حافظه (Ownership)، وامگیری (Borrowing) و طولعمر (Lifetimes) امنیت حافظه را تضمین میکند.
دلایل زیادی وجود دارد که Rust در سالهای اخیر به یکی از محبوبترین زبانهای برنامهنویسی دنیا تبدیل شده:
- سرعت اجرای بسیار بالا: Rust به زبان ماشین کامپایل میشود و میتواند برنامههایی سریع مانند C/C++ تولید کند.
- ایمنی حافظه در زمان کامپایل: با استفاده از سیستم مالکیت و وامگیری، بسیاری از خطاهای رایج حافظه در زمان کامپایل تشخیص داده میشوند.
- پشتیبانی از برنامهنویسی همزمان مدرن: با ویژگیهایی مانند async/await و ابزارهایی مثل Tokio، نوشتن برنامههای همزمان در Rust راحتتر و ایمنتر است.
- توسعهپذیری و مقیاسپذیری بالا: برای ساخت اپلیکیشنهای بزرگ و قابل نگهداری بسیار مناسب است.
- ابزارهای توسعه قوی: Rust دارای ابزارهایی مانند Cargo، Rustfmt و Clippy است که توسعه را بسیار ساده و استاندارد میکنند.
برخلاف Go که سادگی را اولویت قرار میدهد یا C/C++ که کنترل کامل اما ناامن را فراهم میکند، Rust ترکیبی از قدرت، امنیت و مدرنبودن است.
برای نصب Rust، بهترین روش استفاده از ابزار رسمی آن یعنی Rustup است. Rustup به شما اجازه میدهد نسخههای مختلف Rust را نصب و مدیریت کنید، و ابزارهای مهمی مثل Cargo و Rustc را همراه با آن نصب میکند.
مراحل نصب:
برای کاربران ویندوز، مک یا لینوکس:
1- ترمینال یا Command Prompt را باز کنید.
2 - دستور زیر را وارد نمایید:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
پس از اجرای این دستور، نصبکننده شما را از طریق مراحل نصب راهنمایی خواهد کرد.
بررسی نصب:
برای اطمینان از اینکه نصب موفق بوده، این دستورات را در ترمینال اجرا کنید:
rustc --versioncargo --version
اگر خروجیای مشابه با نسخه Rust و Cargo دریافت کردید، نصب به درستی انجام شده است.
برای توسعه حرفهای با Rust، استفاده از محیط توسعهی مناسب بسیار مهم است. محبوبترین و توصیهشدهترین ابزار برای کار با Rust، استفاده از Visual Studio Code به همراه افزونههای مرتبط است.
Visual Studio Code:
1- برنامه VSCode را نصب کنید (در اینجا).
2 - وارد قسمت Extensions شوید و افزونههای زیر را نصب کنید:
3 - rust-analyzer: افزونهی رسمی و بسیار قدرتمند برای پشتیبانی از کد Rust
4- crates: نمایش نسخهی crateها داخل فایل Cargo.toml
سایر ابزارها (اختیاری):
- CLion: محیط تجاری از JetBrains با پشتیبانی عالی از Rust
- IntelliJ IDEA + پلاگین Rust
- Neovim/Vim + پلاگین coc-rust-analyzer
استفاده از rust-analyzer باعث میشود تکمیل خودکار، بررسی خطاها، و ناوبری کد سریعتر و دقیقتر انجام شود.
Cargo ابزار رسمی ساخت (Build System) و مدیریت پکیجها در زبان Rust است. این ابزار شبیه npm در Node.js یا pip در Python عمل میکند، اما بسیار قدرتمندتر.
برای ایجاد یک پروژه جدید در Rust، کافی است دستور زیر را در ترمینال وارد کنید:
cargo new hello_rust
این دستور یک پوشه به نام hello_rust ایجاد میکند که ساختار پروژهی اولیه را دارد.
ساختار پروژه ایجاد شده:
hello_rust/
├── Cargo.toml ← فایل تنظیمات پروژه و مدیریت وابستگیها
└── src/
└── main.rs ← فایل اصلی برنامه (entry point)
اجرای برنامه:
وارد پوشهی پروژه شوید و آن را اجرا کنید:
cd hello_rustcargo run
خروجی:
Hello, world!
تبریک! شما اولین برنامهی Rust خود را با موفقیت اجرا کردید.
در فایل src/main.rs که بهطور پیشفرض ایجاد میشود، کدی شبیه زیر نوشته شده است:
fn main() {println!("Hello, world!");}
اجزای این کد:
- fn به معنای تعریف تابع است.
- main تابع اصلی هر برنامه Rust است و نقطهی ورود اجرای برنامه.
- println! یک ماکرو است (علامت ! نشان میدهد ماکرو است، نه تابع) که برای چاپ به خروجی استاندارد استفاده میشود.
در زبان Rust، ماکروها نقش مهمی دارند و در جای خود مفصل بررسی خواهیم کرد.
در این بخش، با مبانی زبان Rust آشنا شدیم:
- تاریخچهی زبان و دلایل طراحی آن
- مزیتهای کلیدی Rust در مقایسه با زبانهای مشابه
- روش نصب و بررسی ابزارهای توسعه
- آشنایی با Cargo و ساختار پروژههای Rust
- اجرای اولین برنامه
در بخش بعدی، وارد مباحث اصلی زبان مانند متغیرها، نوع دادهها، مالکیت حافظه، و کنترل جریان خواهیم شد.