صدر Rust 1.85: نظرة عامة على الميزات والتحسينات الرئيسية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

صدر Rust 1.85: ما الذي تغير في الإصدار الجديد



قدم فريق مطوري Rust تحديثًا مستقرًا جديدًا للغة — الإصدار 1.85. يجلب هذا الإصدار مجموعة من الميزات المنتظرة التي تبسط كتابة الكود غير المتزامن، وتحسن الأداء، وتوسع مجموعة أدوات المطور. دعنا نستعرض التغييرات الرئيسية.



تثبيت async closures

كان أحد الأحداث الرئيسية هو تثبيت async closures — وهي closures يمكن أن تكون غير متزامنة. سابقًا، لإرجاع closure غير متزامن، كان عليك كتابة تواقيع معقدة يدويًا مع impl Future. الآن يدعم المترجم الصياغة التالية:

  • async || { ... } — إعلان مباشر لـ closure غير متزامن.
  • إغلاق تلقائي للمتغيرات مع دعم lifetime.
  • التوافق مع traits FnOnce و FnMut و Fn.

هذا يبسط كتابة معالجات الأحداث غير المتزامنة، والبرمجيات الوسيطة (middleware)، ودوال الاسترجاع (callback) في أطر الويب (مثل Axum أو Actix).



تحسين borrow checker

في Rust 1.85، تم تحسين محلل الاقتراض (borrow checker) بشكل كبير. الآن يفهم بشكل أفضل الحالات التي يتم فيها استخدام متغير بعد نقل جزئي:

  • يُسمح باستعارة حقول فردية من هيكل (struct)، حتى لو تم نقل الحقول الأخرى بالفعل.
  • تحسين معالجة الاقتراضات المتداخلة في التكرارات (iterators).
  • تقليل عدد التحذيرات الخاطئة في الكود الذي يحتوي على إنشاءات شرطية.

هذا مفيد بشكل خاص عند العمل مع هياكل بيانات كبيرة حيث تكون الملكية الجزئية مطلوبة.



إمكانيات جديدة للماكرو

يتضمن الإصدار توسيع نظام الماكرو (proc macros):

  • تمت إضافة دعم token streams مع إمكانية تعديل المواقع في الكود المصدري.
  • تبسيط إنشاء الماكروات السمة (attribute macros) للهياكل والتعدادات (enums).
  • تحسين معالجة الأخطاء داخل الماكروات — الآن تظهر الرسائل مع تحديد دقيق للسطر في كود المستخدم.

هذا سيجعل تطوير مكتبات التسلسل (serde)، وتوجيه الويب، وتوليد الكود أكثر مرونة.



تحسين المترجم وتحسينات في cargo

واصل المطورون العمل على أداء التجميع:

  • تسريع التجميع التزايدي للمشاريع الكبيرة (أسرع بنسبة تصل إلى 15%).
  • في cargo check، تمت إضافة دعم للتحليل المتوازي للتبعيات.
  • في cargo build، تم تحسين التخزين المؤقت للقطع الأثرية الوسيطة.

أيضًا، ظهر أمر جديد في cargo وهو cargo info، والذي يعرض معلومات مفصلة عن حزمة من السجل (الإصدارات، التبعيات، الترخيص) دون الحاجة إلى تنزيلها.



إصلاحات الأمان والاستقرار

في الإصدار 1.85، تم إصلاح العديد من الثغرات الأمنية المتعلقة بمعالجة الكود غير الآمن (unsafe). تم إصلاح الأخطاء في التعامل مع الذاكرة عند استخدام std::mem::transmute و MaybeUninit. يوصي فريق Rust جميع المستخدمين بالتحديث لضمان أمان مشاريعهم.



كيفية التحديث

التحديث متاح عبر المثبت الرسمي rustup. لتثبيت الإصدار الجديد، قم بتنفيذ الأمر:

المكتبات الموصى بها