OSS探訪GitHubでログイン

Rustの型システムでSQL queryとschemaを検証するORM・Query Builder

OSS規模スコア 282.5OSS健全度 100
スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,193
主要言語
Rust
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

DieselはRust向けのORM・Query Builderです。database schemaをRustの型へ反映し、型を使ったquery構築、modelの読み書き、migration、raw SQLを提供します。PostgreSQL、MySQL、SQLite、MariaDBをin-tree backendとして扱います。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

schemaと型情報を使ってqueryの不整合を早期検出する

Dieselはschemaをtable! macroなどでRust側へ表現し、Query Builderとmodel型を組み合わせます。Selectableやbackend checkを利用すると、Rust型とSQL側の型の不一致をcompiler errorとして確認しやすくなります。

出典:[2][4]

CRUD・migration・raw SQLを同じdatabase layerで扱う

READMEはselect、insert、updateなどのQuery Builderに加え、表現しにくいquery向けのraw SQL APIも示しています。Diesel CLIはschema migrationとschema.rs生成を支援します。

出典:[2][3]

向いている用途

relational databaseを使うRust backendで型安全性を重視する場合に向く

PostgreSQL、MySQL、SQLite、MariaDBを使うapplicationで、SQLとRust modelの対応を型で管理しながらqueryを組み立てたい場合に適します。migrationをrepositoryで管理する構成にも向きます。

出典:[2][3]

導入前の確認

Rust 1.86以上とdatabase native dependency・patch更新を確認する

2.3.13のworkspaceはRust 1.86.0を要求します。backendによってlibpq、libmysqlclient、libsqlite3等が必要で、CLIにはbundled featureもあります。2.3.13にはSQLiteのmemory safetyやgenerated schemaのcode injectionに関する修正も含まれるため、2.3系ではpatch releaseを最新に保つことが重要です。

出典:[5][3][6]

参考にした公式資料

  1. [1]diesel-rs/diesel — GitHub repository(2026-10-06)
  2. [2]Diesel 2.3.13 — README(2026-10-06)
  3. [3]Diesel CLI 2.3.13 — README(2026-10-06)
  4. [4]Diesel 2.3.13 — crate documentation(2026-10-06)
  5. [5]Diesel 2.3.13 — workspace Cargo.toml(2026-10-06)
  6. [6]Diesel 2.3.13 release(2026-10-06)
編集部からの補足

database schemaをRustの型として扱い、queryの不整合をcompile時に見つけやすくする設計が強みです。CLIやdatabase driverはnative library要件があるため、CI・container・開発PCで同じbackend依存を再現できるかも確認してください。

3ステップで試す

  1. 1

    Diesel CLI 2.3.13をSQLite bundledで導入する

    確認対象のCLI versionを固定し、SQLiteをbundled buildして導入します。Rust 1.86以上とC compilerが必要です。

    cargo install diesel_cli --version 2.3.13 --no-default-features --features "sqlite-bundled"
  2. 2

    公式SQLite exampleを準備してmigrationを適用する

    公式Getting StartedのSQLite exampleを取得し、同梱migrationをtest.dbへ適用します。

    git clone --depth 1 --branch v2.3.13 https://github.com/diesel-rs/diesel.git && cd diesel/examples/sqlite/getting_started_step_3 && echo "DATABASE_URL=file:test.db" > .env && diesel migration run
  3. 3

    型付きqueryを実行する

    公式exampleのshow_postsを実行し、生成済みschemaとDiesel Query Builderを使ったqueryがSQLiteへ接続して動くことを確認します。

    cargo run --bin show_posts
公式READMEで確認

成長

成長の推移 · 直近30日

14,193 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • mysql
  • orm
  • postgresql
  • query-builder
  • rust
  • sqlite
Stars
14,193
Forks
1,247
Watchers
108
Open Issues
167
Contributors
393
所有者種別
Organization
主要言語
Rust
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?