Типобезопасный SQL query builder для TypeScript с автодополнением таблиц, столбцов и типов результатов для разных SQL-баз данных.
diesel-rs/diesel
Безопасный и расширяемый ORM и конструктор запросов для Rust с проверкой запросов во время компиляции для PostgreSQL, MySQL, SQLite и MariaDB.
- Звёзды
- 14,212
- Форки
- 1,252
- Открытые issues
- 172
- Последний коммит
- позавчера
Что это?
Diesel — это ORM и конструктор запросов для Rust, который избавляет от повторяющегося кода для преобразования строк базы данных в структуры и помогает выявлять ошибки во время компиляции, а не во время выполнения. С помощью системы типов Rust библиотека позволяет собирать SQL-запросы, похожие на обычный код на Rust: выборки, фильтрацию, сортировку, подзапросы с JOIN, вставку и обновление данных.
Модели объявляются как структуры Rust с derive-макросами, например Queryable, Selectable и Insertable, а Diesel генерирует код для сопоставления строк с полями структур. Если возможностей конструктора запросов недостаточно, разработчики могут писать обычный SQL с помощью sql_query и передавать типизированные параметры.
Библиотека поддерживает PostgreSQL, MySQL, SQLite и MariaDB; нужный бэкенд выбирается через feature flags Cargo. На сайте проекта есть руководство Getting Started, а вопросы можно задавать в GitHub Discussions.
Ключевые возможности
- 01Проверка запросов во время компиляции на основе типов Rust
- 02Derive-макросы для генерации кода сопоставления строк со структурами
- 03Конструктор запросов для выборок, фильтрации, сортировки и подзапросов
- 04API для вставки и обновления данных с передачей структур и поддержкой RETURNING
- 05Обычный SQL с привязкой типизированных параметров
Сценарии использования
- Создание веб-бэкенда на Rust, работающего с PostgreSQL или MySQL
- Разработка типобезопасного слоя доступа к данным для CLI-приложения или сервиса на Rust
- Использование SQLite в настольном или встраиваемом приложении на Rust
Быстрый старт
- 1
Добавьте diesel в Cargo.toml, указав feature для используемого бэкенда базы данных
- 2
Следуйте руководству Getting Started на diesel.rs
Что важно знать
- Для руководств по функциям помимо Getting Started по-прежнему указано, что они скоро появятся.
Темы
Частые вопросы
- Что такое diesel?
- Безопасный и расширяемый ORM и конструктор запросов для Rust с проверкой запросов во время компиляции для PostgreSQL, MySQL, SQLite и MariaDB. Diesel — это ORM и конструктор запросов для Rust, который избавляет от повторяющегося кода для преобразования строк базы данных в структуры и помогает выявлять ошибки во время компиляции, а не во время выполнения. С помощью системы типов Rust библиотека позволяет собирать SQL-запросы, похожие на обычный код на Rust: выборки, фильтрацию, сортировку, подзапросы с JOIN, вставку и обновление данных.
- diesel можно использовать бесплатно? Какая у него лицензия?
- diesel распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- diesel всё ещё поддерживается?
- Активно поддерживается. Последний коммит в diesel — 20 окт. 2026 г..
- Для чего можно использовать diesel?
- Создание веб-бэкенда на Rust, работающего с PostgreSQL или MySQL Разработка типобезопасного слоя доступа к данным для CLI-приложения или сервиса на Rust Использование SQLite в настольном или встраиваемом приложении на Rust
- Как установить diesel?
- Добавьте diesel в Cargo.toml, указав feature для используемого бэкенда базы данных Следуйте руководству Getting Started на diesel.rs
- Где скачать diesel?
- Исходный код и инструкции по установке — на GitHub: https://github.com/diesel-rs/diesel
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
ORM для TypeScript и JavaScript, работающий в Node.js и других JS-средах и поддерживающий паттерны Active Record и Data Mapper для множества SQL- и NoSQL-баз данных.
TypeScript ORM для Node.js с типобезопасным доступом к PostgreSQL, MySQL, SQLite, MongoDB и другим базам данных.
Асинхронный SQL-инструментарий на чистом Rust с запросами на обычном SQL, проверяемыми во время компиляции; поддерживает PostgreSQL, MySQL/MariaDB и SQLite.
Лёгкая ORM без лишних абстракций для TypeScript, поддерживающая PostgreSQL, MySQL и SQLite в Node.js, Bun, Deno и edge-средах.
ORM для Node.js и TypeScript на основе промисов, поддерживающая PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle и Db2.