یک بازنویسی دوباره، از PHP به Rust

یه پروژه PHP دارم، با Laravel نوشتم. یه بخشی از پروژه محاسبات عددی سبک ولی خیلی زیاد داشت. نسبتا سنگین شده بود و میتونست تا چند دقیقه طول بکشه.

تصمیم گرفتم اون تیکه رو با Rust بازنویسی کنم. با خوندن مستندات Rust شروع کردم و روز بعد شروع کردم به نوشتن.

نکته اینکه من تازه شروع کردم به یادگیری Rust و اصلا حرفه‌ای نیستم.

با همین دانش ناقص، حدودا خط به خط PHP رو به Rust نوشتم و نتیجه عالی بود!

چندین برابر سریع‌تر اجرا میشه در حالی که هنوز Single Thread هست. محاسبات طوری هست که میشه به چند Thread واگذار بشه برای اجرا، و در تئوری باید سریع‌تر بشه. تا ببینم در عمل چطور میشه.

خب چطور داخل PHP استفاده کردم از این برنامه؟ خیلی ساده از shell_exec استفاده کردم.

برنامه Rust اینجور نوشته شده که یه اسم فایل رو آرگومان میگیره و خروجی رو به صورت JSON مینویسه. داخل PHP اطلاعات ورودی رو داخل یه فایل (تابع tempnam) مینویسه، اسم فایل رو میده به برنامه Rust و خروجی رو میخونه. ساده و تمام!

پروژه سنگین هست، ولی کاربراش چند نفر بیشتر نیستن. برای همین این مدل اجرا کفایت میکنه.