Windows7 で Rust の diesel (sqlite3) のサンプルを動かす


rustc 1.25.0
cargo 0.26.0
diesel 1.2.1
SQLite 3.23.1
Visual Studio 2015

Rust で Windows native アプリに挑戦してみました。動かすものは Diesel のホームページにあるサンプルです。ただしこれは PostgreSQL 用なので Sqlite に書き直します。なお SQLite 用に書き直したものも Diesel の Github には置いてあります。

WinHTTP のパッチ

Windows7 では TLS の問題があってcargo が git clone に失敗するので公式のパッチを当てます。自分の環境では Easy fix の項から Download して実行するだけでした。(registry を書き換えてくれます。)

sqlite3.lib のインストール

SQLite の公式ページから win64-x64 バージョンをダウンロードします。解凍すると dll と def が入っているので以下のコマンドで lib を作ります。

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\lib.exe" /DEF:sqlite3.def /MACHINE:x64 /OUT:sqlite3.lib

生成された sqlite3.lib をホーム以下 ~/.rustup/toolchains/stable-x86_64-pc-windows-msvc/lib/rustlib/x86_64-pc-windows-msvc/lib にコピーします。

Tutorial の実行

後は基本的に Diesel の tutorial の通りできると思います。この記事も参考になると思います。
またこの記事によると Windows10 でも同じ方針でうまくいくようです。