Rust یک زبان برنامه نویسی کامپایل شده است که از برنامه نویسی کاربردی، رویه ای، امری و شی گرا پشتیبانی می کند.
به تازگی انتشار نسخه جدید زبان برنامه نویسی Rust 1.68 اعلام شد. برای کسانی که با Rust آشنایی ندارند، باید بدانید که این زبان برنامه نویسی توسط پروژه موزیلا تأسیس شده است، اما اکنون تحت نظارت بنیاد غیرانتفاعی مستقل Rust توسعه یافته است.
زبانe بر امنیت حافظه تمرکز دارد و ابزاری را برای دستیابی به موازی کاری بالا در عین اجتناب از استفاده از جمع کننده زباله و زمان اجرا فراهم می کند (زمان اجرا به مقدار اولیه اولیه و نگهداری کتابخانه استاندارد کاهش می یابد).
روشهای مدیریت حافظه Rust، توسعهدهنده را از خطاها در هنگام دستکاری نشانگرها نجات میدهد و از مشکلاتی که به دلیل دستکاری حافظه در سطح پایین ایجاد میشود، مانند دسترسی به یک ناحیه از حافظه پس از آزاد شدن، عدم ارجاع اشارهگرهای تهی، سرریز حافظه و غیره محافظت میکند. بافر و غیره برای توزیع کتابخانهها، ارائه ساختها و مدیریت وابستگیها، این پروژه مدیر بسته Cargo را توسعه میدهد.
زنگ همچنین محافظت در برابر سرریز اعداد صحیح را فراهم می کند، نیاز به مقداردهی اولیه اجباری متغیر قبل از استفاده دارد، خطاها را در کتابخانه استاندارد مدیریت می کند، مفهوم متغیرها و مراجع غیرقابل تغییر را به طور پیش فرض اعمال می کند، تایپ ثابت قوی برای به حداقل رساندن خطاهای منطقی ارائه می دهد.
ویژگی های اصلی جدید Rust 1.68
در این نسخه جدید که از Rust 1.68 می آید، می توانیم متوجه شویم که پشتیبانی از پروتکل Sparse در مدیر بسته Cargo تثبیت شده است و مخزن crates.io که روش جدیدی برای کار با ایندکس تعریف می کند که نسخه های موجود را منعکس می کند از تمام بسته های موجود در مخزن.
پروتکل جدید امکان افزایش چشمگیر سرعت کار با crates.io و حل مشکلات مقیاس بندی را با افزایش بیشتر تعداد بسته ها در مخزن فراهم می کند.
برای کاهش تاخیرهای ناشی از دانلود فهرست پر شده، پراکنده، به جای دسترسی به ایندکس از طریق Git، فقط داده های فهرست را مستقیماً از طریق HTTPS دانلود کنید ضروری است، وابستگی های یک پروژه خاص را پوشش می دهد. برای برگرداندن داده های فهرست، یک سرویس جدید index.crates.io درگیر است.
به صورت پیش فرض، پروتکل جدید برای استفاده در شاخه Rust 1.70 برنامه ریزی شده استو قبل از آن، برای فعال کردن آن، می توانید متغیر محیطی را تنظیم کنید.CARGO_REGISTRIES_CRATES_IO_PROTOCOL=پراکنده» یا اضافه کردن پارامتر 'پروتکل = پراکنده تشکیل پرونده .cargo/config.toml.
یکی دیگر از تغییرات برجسته این است کهو ماکرو » پین را اضافه کرد! « که به شما امکان می دهد یک ساختار Pin<&mut T> ایجاد کنید از عبارت "T" با سنجاق محلی حالت آن (برخلاف Box::pin حافظه را روی پشته اختصاص نمی دهد، اما در سطح پشته متصل می شود).
علاوه بر آن، ما همچنین می توانیم آن را پیدا کنیم یک کنترل کننده خطای تخصیص حافظه پیش فرض پیشنهاد شده است، که هنگام استفاده از بسته استاندارد نقشه برداری استفاده می شود.
برنامه هایی که فقط فعال می شوند alloc (نه std) اکنون کنترلر را "panic!" در صورت خرابی تخصیص حافظه، که به صورت اختیاری می توان با "#[panic_handler] رهگیری کرد". برنامه هایی که از کتابخانه std استفاده می کنند همچنان اطلاعات خطا را در stderr چاپ می کنند و از کار می افتند.
از تغییرات دیگر که برجسته است:
- بخش جدیدی از API به حالت پایدار منتقل شده است، از جمله روشها و پیادهسازی ویژگیهایی که تثبیت شدهاند
- ویژگی "const" که امکان استفاده از آن را در هر زمینه ای به جای ثابت ها تعیین می کند، در VecDeque::new استفاده می شود.
- پلتفرم اندروید اکنون به حداقل NDK r25 (API 19) نیاز دارد، یعنی حداقل نسخه اندروید پشتیبانی شده به 4.4 (KitKat) افزایش یافته است.
- سومین سطح پشتیبانی از پلتفرم سونی پلی استیشن ویتا (armv7-sony-vita-newlibeabihf) اجرا شد.
- سطح سوم شامل پشتیبانی اولیه است، اما بدون آزمایش خودکار، انتشار بیلدهای رسمی و تأیید کامپایل بودن کد.
اگر هستی علاقه مند به دانستن بیشتر در مورد آن، می توانید جزئیات را در اینجا بررسی کنید لینک زیر
در نهایت برای کسانی که هستند علاقه مند به ارتقاء از نسخه قبلی Rust نصب شده از طریق rustup، می توانید نسخه جدید Rust 1.68.0 را با:
rustup update stable
اولین کسی باشید که نظر