Repolode
diesel-rs

diesel-rs/diesel

PostgreSQL、MySQL、SQLite、MariaDBに対応し、クエリをコンパイル時に検証できる、Rust向けの安全で拡張可能なORM兼クエリビルダーです。

スター
14,212
フォーク
1,252
未解決の Issue
172
最終コミット
一昨日

これは何?

DieselはRust向けのORM兼クエリビルダーです。データベースの行をstructにマッピングするための定型コードを減らし、実行時ではなくコンパイル時にエラーを検出することを目指しています。Rustの型システムを使って、通常のRustコードのように読めるSQLクエリを組み立てられます。SELECT、フィルタリング、ソート、JOIN形式のサブクエリ、INSERT、UPDATEを扱えます。

モデルはQueryable、Selectable、Insertableなどのderiveマクロを使ったRustのstructとして宣言でき、Dieselがそこから行のマッピング処理を生成します。クエリビルダーでは対応しきれない場合は、sql_queryを使って生のSQLを記述し、型付きパラメーターをバインドすることもできます。

PostgreSQL、MySQL、SQLite、MariaDBに対応しており、バックエンドはCargoのfeatureフラグで選択します。プロジェクトのWebサイトにはGetting Startedチュートリアルがあり、質問はGitHub Discussionsで受け付けています。

主な機能

  • 01Rustの型に基づき、コンパイル時に検証されるクエリ
  • 02structの行マッピング処理を生成するderiveマクロ
  • 03SELECT、フィルタリング、ソート、サブクエリに対応するクエリビルダー
  • 04structを受け取るINSERT/UPDATE APIとRETURNINGのサポート
  • 05型付きパラメーターのバインドに対応した生のSQL

ユースケース

  • PostgreSQLやMySQLに接続するRust製Webバックエンドの構築
  • Rust製CLIやサービス向けの型安全なデータアクセス層の作成
  • Rust製デスクトップアプリや組み込みアプリケーションでのSQLiteの利用

クイックスタート

  1. 1

    使用するデータベースバックエンド向けの feature を指定して、Cargo.toml に diesel を追加します

  2. 2

    diesel.rs の Getting Started チュートリアルに従います

使う前に知っておきたいこと

  • Getting Started 以外の機能ガイドは、現在も近日公開予定と記載されています。

トピック

よくある質問

diesel とは?
PostgreSQL、MySQL、SQLite、MariaDBに対応し、クエリをコンパイル時に検証できる、Rust向けの安全で拡張可能なORM兼クエリビルダーです。 DieselはRust向けのORM兼クエリビルダーです。データベースの行をstructにマッピングするための定型コードを減らし、実行時ではなくコンパイル時にエラーを検出することを目指しています。Rustの型システムを使って、通常のRustコードのように読めるSQLクエリを組み立てられます。SELECT、フィルタリング、ソート、JOIN形式のサブクエリ、INSERT、UPDATEを扱えます。
diesel は無料で使えますか?ライセンスは?
diesel は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
diesel は今もメンテナンスされていますか?
活発にメンテナンス中。diesel の最終コミットは 2026年10月20日 です。
diesel は何に使えますか?
PostgreSQLやMySQLに接続するRust製Webバックエンドの構築 Rust製CLIやサービス向けの型安全なデータアクセス層の作成 Rust製デスクトップアプリや組み込みアプリケーションでのSQLiteの利用
diesel のインストール方法は?
使用するデータベースバックエンド向けの feature を指定して、Cargo.toml に diesel を追加します diesel.rs の Getting Started チュートリアルに従います
diesel はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/diesel-rs/diesel

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト