Открийте и изследвайте най-популярните Rust ORM в този изчерпателен преглед.

Обектно-релационното картографиране (ORM) е техника за опростяване на достъпа до данни и манипулирането им в приложенията чрез абстрахиране на детайлите на ниско ниво на взаимодействията с бази данни. ORM ви позволяват да работите с обекти и типове на предпочитания от вас език за програмиране, като същевременно се интегрирате безпроблемно със системи за управление на релационни бази данни (RDBMS).

ORM рамките са проектирани да бъдат удобни за потребителя, особено ако не сте добре запознати с SQL (Език за структурирани заявки) или управление на бази данни. ORM осигуряват абстракционен слой на високо ниво, който ви позволява да взаимодействате с бази данни, като използвате познати концепции за обектно-ориентирано програмиране, като по този начин значително опростявате интеграцията на базата данни на приложението.

Rust, SQL бази данни и ORM

Когато създавате приложения в Rust, може да се нуждаете от някаква форма на постоянство. Можете да избирате от много парадигми и библиотеки на бази данни в екосистемата Rust.

instagram viewer

Да предположим, че искате да работите с релационна база данни. В този случай можете да избирате между използването на SQL клиенти за изпълнение на SQL операции в системи за управление на бази данни чрез необработени SQL заявки във вашите програми или ORM, които ви позволяват да използвате вградените в Rust типове, за да работите с вашите база данни.

Има няколко предимства от използването на ORM във вашите Rust приложения. ORM елиминират необходимостта от ръчно писане на сложни, податливи на грешки заявки. Вместо това можете да използвате силата на ORM рамката за ежедневни операции с бази данни, като вмъкване, актуализиране и заявки за данни чрез прост и интуитивен API. Използвайки ORM, можете да пишете програми на Rust, които работят на множество системи за управление на база данни, без да се налага да пренаписвате SQL заявки, специфични за системата за управление на база данни.

За разлика от други езици, Rust няма широко разпространено ORM. В екосистемата на Rust обаче има много ORM за различни цели, поддържащи множество бази данни, включително Diesel, SQLx, Sled, SeaORM и много други.

Diesel е Rust ORM, който предоставя изчерпателни функции, които дават възможност на разработчиците да работят ефективно работа с множество поддържани SQL бази данни.

Diesel осигурява силно въвеждане и компилира функции за безопасност на времето, експресивен API за заявки, автоматични миграции на схеми, транзакции и обработка на грешки, наред с други функции.

Diesel е предпочитан ORM поради своята производителност и ефективност, безопасност и надеждност и активната общност, която допринася за проекта. Освен това Diesel работи добре с други уеб рамки на Rust като Rocket.

Diesel предоставя кутия и CLI инструмент за операции с бази данни.

Можете да изпълните тази команда, за да инсталирате diesel_cli инструмент за предпочитаната от вас база данни (в този случай, sqlite, променяте аргумента на името на предпочитаната от вас SQL база данни, поддържана от дизел).

карго инсталиране diesel_cli --no-default-features --features sqlite

Също така можете да добавите Diesel към вашия проект зависимости раздел, за да използвате щайгата във вашия проект.

[зависимости]
дизел = { версия = "1.4.5", функции = ["sqlite"] }

Ето как да импортирате Diesel във вашите Rust файлове за операциите на базата данни на вашия проект.

използване дизел:: прелюдия::*;

Това импортира всички видове и черти от дизел:: прелюд модул в текущия обхват. Това улеснява използването на функциите на Diesel без изрично импортиране на всеки тип или черта.

Като цяло, Diesel е чудесен инструмент за ORM и база данни за вашия проект за база данни, тъй като има жизнена общност, много онлайн уроци и страхотна поддръжка за библиотеката.

SeaORM е релационна ORM за Rust, която помага при изграждането на уеб услуги. SeaORM може да се похвали с широк набор от характеристики и функционалности, предназначени да рационализират процеса на работа с бази данни, включително мощно изграждане на заявки, дефиниране на схема и миграция, картографиране на взаимоотношения, транзакции и обединяване на връзки с поддръжка за асинхронни операции с async/await на Rust синтаксис.

Най-вече API на SeaORM е проектиран да бъде ергономичен и изразителен, което ви позволява да пишете ясни и кратки заявки и операции към базата данни. Интуитивният синтаксис на SeaORM и добре обмислените абстракции минимизират шаблонния код и повишават производителността.

SeaORM предоставя CLI инструмент и щайга за операции с бази данни.

Ето командата за инсталиране на sea-orm-cli CLI инструмент:

товарен монтаж sea-orm-cli

Можете да използвате мигриране инициал команда за писане на файл за миграция, за да настроите вашата база данни и схема.

sea-orm-cli мигрират init

Добавете морски орм щайга към зависимости раздел на вашия проект Cargo.toml файл за инсталиране и използване на SeaORM.

[зависимости]
sea-orm = { версия = "0.9" }

След като инсталирате SeaORM, можете да импортирате кутията във вашите Rust файлове с a използване изявление, както следва:

използвайте sea_orm:: entity:: prelude::*;

The използвайте sea_orm:: entity:: prelude::*; изявлението импортира всички типове и черти от sea_orm:: обект:: прелюдия модул в текущия обхват, за да ви позволи да използвате тези типове и характеристики, без да се налага да квалифицирате имената им с sea_orm:: обект:: прелюдия префикс.

SeaORM е страхотен ORM с жизнена общност и има отлична описателна документация, която да ви помогне да започнете.

SeaORM срещу Diesel

Изборът на правилния ORM за Rust проект изисква внимателно разглеждане на различни фактори.

Както SeaORM, така и Diesel предлагат отлична производителност, използвайки силните страни на Rust за оптимизиране на взаимодействията с бази данни. Докато SeaORM се фокусира върху простотата и интуитивния API дизайн, Diesel дава приоритет на проверките по време на компилиране и безопасността.

Ето таблица, сравняваща характеристиките и функционалностите на двата ORM:

Метрика

дизел

SeaORM

Поддръжка на бази данни

PostgreSQL, MySQL, SQLite

PostgreSQL, MySQL, SQLite, SQL Server, Oracle

Създател на заявки

да

да

Миграция на схема

да

да

Обединяване на връзки

Не

да

Мързеливо зареждане

Не

да

Проверки по време на компилиране

да

да

Документация

Обширен, но може да бъде по-голямо предизвикателство за начинаещи

Изчерпателно с ясни примери

Подкрепа от общността

Създаден с по-голяма потребителска база, достатъчно ресурси и канали за чат

Бързо разрастващ се с активно хранилище на GitHub и сътрудници

Изборът между Diesel и SeaORM зависи от спецификациите на вашия проект. Diesel има установена поддръжка от общността и е предпочитан заради своите здрави характеристики и производителност. Diesel е подходящ, ако давате приоритет на проверките по време на компилиране, безопасността и простотата.

От друга страна, SeaORM е нов и разпространяващ се, с поддръжка за повече SQL бази данни двигатели и бавно зареждане. SeaORM може да е по-добре, ако дадете приоритет на интуитивния дизайн на API и производителността.

И двата ORM поддържат заявки, миграция на схеми и проверки по време на компилиране. Помислете за системата за управление на базата данни, която използвате, и размера на вашия проект, преди да вземете решение.

Diesel прави работата с бази данни лесна

Общността с отворен код на Rust продължава да прави значителни крачки в подобряването на зрелостта и функционалността на съществуващи и предстоящи пакети и ORM.

Твърди се, че Diesel е един от най-популярните ORM в екосистемата на Rust. Широкото приемане на Diesel е доказателство за неговите здрави характеристики, ефективна производителност и активна подкрепа от общността. Екипът за разработка на Diesel е посветен на усъвършенстването и разширяването на своите възможности, за да гарантира, че остава надеждно и стабилно ORM решение за разработчиците на Rust.