ما به سمت زنگ زدگی حرکت می کنیم

در ابتدا، به دلیل تجربهام با این زبان، استفاده از C++ را برای نسخههای اولیه ReductStore انتخاب کردم. این به من اجازه داد تا به سرعت یک پایگاه داده سری زمانی کاربردی برای داده های باینری ایجاد کنم. با این حال، وقتی پلتفرم ما گسترش یافت و شامل Windows و MacOS شد، متوجه شدم که با رشد پایگاه کد، زیرساخت C++ را مدیریت می کنم. این باعث شد
تمرکز بر بهبود عملکرد و ویژگیهای منحصر به فرد محصول برای من دشوار است، زیرا باید از سازگاری در چندین پلتفرم در حین مدیریت وابستگیهای متعدد اطمینان حاصل میکردم.
مزایای استفاده از Rust برای پروژه ما
پس از بررسی چندین گزینه، تصمیم گرفتیم پایه کد خود را به Rust منتقل کنیم. Rust یک زبان برنامه نویسی سیستمی مدرن و کارآمد است که مزایای زیادی نسبت به C++ دارد. ویژگیهای ایمنی حافظه آن تضمین میکند که برنامهها فاقد ارجاعات نشانگر تهی، سرریز بافر و سایر آسیبپذیریهای امنیتی رایج هستند. علاوه بر این، مدیر بسته Rust (Cargo) مدیریت وابستگی را ساده می کند و توسعه برنامه های کاربردی بین پلتفرمی را تسهیل می کند. با تمرکز بر عملکرد و قابلیت اطمینان، ما معتقدیم که Rust ما را قادر میسازد تا محصولی پایدارتر و مقیاسپذیرتر بسازیم و در عین حال خطر خطاهای زمان اجرا را کاهش دهیم.
طرح مهاجرت
به جای بازنویسی کل پایه کد به یکباره، تصمیم گرفتیم یک رویکرد ماژول به ماژول برای فرآیند مهاجرت خود داشته باشیم. استراتژی ما ترکیب C++ و Rust با استفاده از کتابخانه کارآمد cxx.rs است. ما در هر مرحله از راه آزمایش های دقیقی را برای اطمینان از انتقال یکپارچه انجام خواهیم داد. در حال حاضر، ساخت برای ویندوز و MacOS غیرفعال شده است،
زیرا سرمایه گذاری در زیرساخت های قدیمی عملی نیست. هنگامی که انتقال کامل شد، ما قصد داریم برای افزایش عملکرد، با Rust کامپایل کنیم.