Об этом проекте
SeaORM — это многофункциональный объектно-реляционный маппер (ORM), разработанный для Rust. Он предоставляет высокоуровневый концептуальный способ моделирования сложных связей, включая отношения 1-1, 1-N, M-N и самоссылающиеся связи.
Ключевые возможности включают:
- Smart Entity Loader: интеллектуально использует join для связей 1-1 и data loaders для связей 1-N, чтобы устранить проблему N+1 запроса.
- ActiveModel: поддерживает вложенное сохранение, позволяя сохранять целые графы объектов за одну операцию.
- Гибкий рабочий процесс: поддерживает как подход schema-first (через систему миграций), так и entity-first, при котором схема базы данных автоматически синхронизируется на основе определений сущностей.
- Поддержка Raw SQL: включает макрос `raw_sql!` для сложных запросов, который обеспечивает интерполяцию параметров и расширение массивов, предотвращая при этом SQL-инъекции.
- Синхронная поддержка: с помощью `sea-orm-sync` API можно использовать без async runtime, что полезно для легковесных CLI-инструментов.
- Интеграция: предоставляет примеры для различных веб-фреймворков Rust, включая Actix, Axum, Poem, Rocket и Salvo.
Кроме того, экосистема включает Seaography для быстрого запуска GraphQL API и SeaORM Pro для профессиональных панелей администратора.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.