خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

مروری بر ORM های محبوب Rust

در این نمای کلی جامع، محبوب ترین Rust ORM ها را کشف و کاوش کنید.

نگاشت شی-رابطه ای (ORM) تکنیکی برای ساده کردن دسترسی به داده ها و دستکاری در برنامه ها با انتزاع جزئیات سطح پایین تعاملات پایگاه داده است. ORM ها شما را قادر می سازند تا با اشیا و انواع در زبان برنامه نویسی دلخواه خود کار کنید و در عین حال به طور یکپارچه با سیستم های مدیریت پایگاه داده رابطه ای (RDBMS) یکپارچه شوید.

چارچوب های ORM به گونه ای طراحی شده اند که کاربر پسند باشند، به خصوص اگر در SQL (زبان پرس و جو ساختاریافته) یا مدیریت پایگاه داده مهارت کافی نداشته باشید. ORM ها یک لایه انتزاعی سطح بالا را ارائه می کنند که به شما امکان می دهد با استفاده از مفاهیم برنامه نویسی شی گرا آشنا با پایگاه های داده تعامل داشته باشید و در نتیجه یکپارچه سازی پایگاه داده برنامه ها را بسیار ساده می کند.

Rust، پایگاه های داده SQL و ORM ها

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

فرض کنید می خواهید با یک پایگاه داده رابطه ای کار کنید. در این صورت، می‌توانید بین استفاده از کلاینت‌های SQL برای اجرای عملیات SQL بر روی سیستم‌های مدیریت پایگاه داده از طریق پرس‌وجوهای SQL خام در برنامه‌ها یا ORM‌هایی که به شما اجازه می‌دهند از انواع داخلی Rust برای کار با پایگاه داده خود استفاده کنید، یکی را انتخاب کنید.

استفاده از ORM ها در برنامه های Rust مزایای متعددی دارد. ORM ها نیاز به نوشتن پرس و جوهای پیچیده و مستعد خطا را به صورت دستی از بین می برند. در عوض، می‌توانید از قدرت چارچوب ORM برای عملیات روزمره پایگاه داده مانند درج، به‌روزرسانی و جستجوی داده‌ها از طریق یک API ساده و شهودی استفاده کنید. با استفاده از یک ORM، می‌توانید برنامه‌های Rust را بنویسید که بر روی چندین سیستم مدیریت پایگاه داده کار می‌کنند، بدون اینکه نیازی به بازنویسی پرس‌وجوهای SQL خاص سیستم مدیریت پایگاه داده باشند.

مطلب مرتبط:   ساختار if __name__ == "__main__" در پایتون چه می کند؟

برخلاف سایر زبان‌ها، Rust دارای یک ORM گسترده نیست. با این حال، ORM های زیادی در اکوسیستم Rust برای اهداف مختلف وجود دارد که از پایگاه های داده متعددی از جمله Diesel، SQLx، Sled، SeaORM و بسیاری دیگر پشتیبانی می کنند.

ORM دیزل

اسکرین شات صفحه اصلی دیزل

Diesel یک Rust ORM است که ویژگی های جامعی را ارائه می دهد که توسعه دهندگان را قادر می سازد تا به طور موثر با چندین پایگاه داده SQL پشتیبانی شده کار کنند.

Diesel قابلیت تایپ قوی و کامپایل ویژگی های ایمنی زمان، API پرس و جوی رسا، انتقال خودکار طرحواره، تراکنش ها و مدیریت خطا را از جمله ویژگی های دیگر فراهم می کند.

دیزل به دلیل عملکرد و کارایی، ایمنی و قابلیت اطمینان و مشارکت فعال جامعه در پروژه، یک ORM ارجح است. همچنین، دیزل به خوبی با سایر چارچوب های وب Rust مانند Rocket بازی می کند.

دیزل یک جعبه و یک ابزار CLI برای عملیات پایگاه داده فراهم می کند.

شما می توانید این دستور را برای نصب ابزار diesel_cli برای پایگاه داده دلخواه خود اجرا کنید (در این مورد، sqlite، آرگومان را به نام پایگاه داده SQL مورد علاقه خود که از دیزل پشتیبانی می شود تغییر می دهید).

cargo install diesel_cli --no-default-features --features sqlite

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

[dependencies]
diesel = { version = "1.4.5", features = ["sqlite"] }

در اینجا نحوه وارد کردن Diesel در فایل های Rust برای عملیات پایگاه داده پروژه شما آمده است.

use diesel::prelude::*;

این همه انواع و ویژگی‌ها را از ماژول دیزل::پرلود وارد محدوده فعلی می‌کند. این کار استفاده از ویژگی های دیزل را بدون وارد کردن صریح هر نوع یا ویژگی آسان می کند.

به طور کلی، دیزل یک ابزار ORM و پایگاه داده عالی برای پروژه پایگاه داده شما است، زیرا یک جامعه پر جنب و جوش، بسیاری از آموزش های آنلاین و پشتیبانی عالی از کتابخانه وجود دارد.

مطلب مرتبط:   مدیریت خطا در Go با استفاده از بسته Errors

SeaORM ORM

اسکرین شات صفحه اصلی seaorm

SeaORM یک ORM رابطه‌ای برای Rust است که به ساخت سرویس‌های وب کمک می‌کند. SeaORM دارای مجموعه گسترده‌ای از ویژگی‌ها و قابلیت‌های طراحی شده برای ساده‌سازی فرآیند کار با پایگاه‌های داده است، از جمله ساخت پرس و جو قدرتمند، تعریف طرحواره و مهاجرت، نقشه‌برداری رابطه، تراکنش‌ها و ادغام اتصال با پشتیبانی از عملیات ناهمزمان با دستور Rust’s async/wait.

مهم‌تر از همه، API SeaORM به گونه‌ای طراحی شده است که ارگونومیک و رسا باشد و به شما امکان می‌دهد تا کوئری‌ها و عملیات پایگاه داده واضح و مختصر بنویسید. نحو بصری SeaORM و انتزاعات به خوبی فکر شده کد دیگ بخار را به حداقل می رساند و بهره وری را افزایش می دهد.

SeaORM یک ابزار CLI و جعبه برای عملیات پایگاه داده فراهم می کند.

در اینجا دستور نصب ابزار sea-orm-cli CLI آمده است:

cargo install sea-orm-cli

می توانید از دستور migrate init برای نوشتن یک فایل مهاجرت برای تنظیم پایگاه داده و طرحواره خود استفاده کنید.

sea-orm-cli migrate init

جعبه sea-orm را به بخش وابستگی ها در فایل Cargo.toml پروژه خود اضافه کنید تا SeaORM را نصب و استفاده کنید.

[dependencies]
sea-orm = { version = "0.9" }

پس از نصب SeaORM، می‌توانید جعبه را در فایل‌های Rust خود با یک عبارت use به صورت زیر وارد کنید:

use sea_orm::entity::prelude::*;

استفاده از sea_orm::entity::prelude::*; بیانیه همه انواع و ویژگی‌ها را از ماژول sea_orm::entity::prelude وارد محدوده فعلی می‌کند تا به شما امکان می‌دهد از این انواع و ویژگی‌ها بدون نیاز به واجد شرایط بودن نام آنها با پیشوند sea_orm::entity::prelude استفاده کنید.

SeaORM یک ORM عالی با یک جامعه پر جنب و جوش است و دارای اسناد توصیفی عالی برای کمک به شما برای شروع است.

SeaORM در مقابل دیزل

انتخاب ORM مناسب برای پروژه Rust مستلزم بررسی دقیق عوامل مختلف است.

SeaORM و Diesel هر دو عملکرد عالی را ارائه می دهند و از نقاط قوت Rust برای بهینه سازی تعاملات پایگاه داده استفاده می کنند. در حالی که SeaORM بر سادگی و طراحی شهودی API تمرکز دارد، دیزل بررسی های زمان کامپایل و ایمنی را در اولویت قرار می دهد.

مطلب مرتبط:   8 اشتباه رایج در HTML که برای توسعه وب بهتر باید از آنها اجتناب کنید

در اینجا جدولی وجود دارد که ویژگی ها و عملکردهای دو ORM را با هم مقایسه می کند:

معیارهای

دیزل

SeaORM

پشتیبانی از پایگاه داده

PostgreSQL، MySQL، SQLite

PostgreSQL، MySQL، SQLite، SQL Server، Oracle

Query Builder

آره

آره

مهاجرت طرحواره

آره

آره

ادغام اتصال

خیر

آره

بارگذاری تنبل

خیر

آره

چک های زمان کامپایل

آره

آره

مستندات

گسترده اما ممکن است برای مبتدیان چالش برانگیزتر باشد

جامع با مثال های واضح

پشتیبانی جامعه

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

با یک مخزن فعال GitHub و مشارکت کنندگان به سرعت در حال رشد است

انتخاب بین دیزل و SeaORM به مشخصات پروژه شما بستگی دارد. دیزل پشتیبانی جامعه را ایجاد کرده است و به دلیل ویژگی ها و عملکرد قوی آن ترجیح داده می شود. اگر بررسی های زمان کامپایل، ایمنی و سادگی را در اولویت قرار دهید، دیزل مناسب است.

از سوی دیگر، SeaORM جدید و در حال گسترش است، با پشتیبانی از موتورهای پایگاه داده SQL بیشتر و بارگذاری تنبل. اگر طراحی و بهره وری بصری API را در اولویت قرار دهید SeaORM ممکن است بهتر باشد.

هر دو ORM از پرس و جوها، مهاجرت طرحواره و بررسی های زمان کامپایل پشتیبانی می کنند. قبل از تصمیم گیری، سیستم مدیریت پایگاه داده ای که استفاده می کنید و اندازه پروژه خود را در نظر بگیرید.

دیزل کار با پایگاه های داده را آسان می کند

جامعه منبع باز Rust همچنان به گام های مهمی در ارتقای بلوغ و عملکرد بسته ها و ORM های موجود و آتی ادامه می دهد.

ادعا می شود که دیزل یکی از محبوب ترین ORM ها در اکوسیستم Rust است. پذیرش گسترده دیزل گواهی بر ویژگی های قوی، عملکرد کارآمد و حمایت فعال جامعه است. تیم توسعه دیزل به پالایش و گسترش قابلیت‌های خود اختصاص دارد تا اطمینان حاصل شود که راه‌حل ORM قابل اعتماد و قوی برای توسعه‌دهندگان Rust باقی می‌ماند.