前回までにMariaDB側設定は済んだことにして進行します。この記事がとりかかりになった方は、準備関係を以下の記事からご確認ください。
- Linux Mint で MariaDB 接続トラブル解消記(Rust対応)1 - pagetakaBlog
- Linux Mint で MariaDB 接続トラブル解消記(Rust対応)2 - pagetakaBlog
- Linux Mint で MariaDB 接続トラブル解消記(Rust対応)3 - pagetakaBlog
Rust+MariaDB接続を一本の記事にしようかと思いましたが、Rust内の記述を二つに分けることにしました。
- Cargo.tomlでの準備:今回はこの部分のご紹介です。
- main.rsでの使用宣言、実際の使用:次回記事でご案内予定です。
Rust内の準備:依存関係を書く
今回、「MariaDBとRustを出来るだけ簡単な方法で外部接続する」のが目標です。main.rsを書く前に「依存関係」を準備します。
- 「mysql(ドライバ)を用意し、Cargo.tomlに書きこむ」と、これだけ読んで「了解」となった方は、この記事不要です。
以下、手順解説です。
登場するのは、大番頭、大福帳、問屋、仕入れ依頼書、そして店頭
Rustはやたら手順が複雑な印象があります。バグを生まないために必要なことなんでしょうね。
- Cargo:大番頭
- Cargo.lock::大福帳(依存関係のバージョン固定ファイル)
- Cargo.toml:仕入れ依頼書
- main.rs:店頭で商品陳列(use)、販売(fn main から)
- crates.io:最新製品を取りそろえる問屋。Rust公式のパッケージ倉庫
Rustプログラムを動かすのに足りない道具(今回はmysqlドライバ)、もしまだ「入荷」してなければ、仕入れ、店頭陳列し、使います。インターネット接続が必要です。
「大番頭が隅々まで見ていて、仕入れ依頼書を見つけたら、問屋から仕入れ。店頭陳列(use)したら、道具をつかえるようになる」というイメージです。
もし、大福帳が何かの都合で消えたら、大番頭が仕入れ依頼書をもとに問屋とやり取りし、再整理・再入荷・再陳列となります。この時、ネット接続が必要に…。
mysqlドライバをインストール
今回必要な道具はmysqlドライバです。「MariaDBなのにmysqlドライバ?」と疑問な方もおられますでしょう。「MariaDB には純正 Rust クライアントが無いので、Rust では mysql crate を使う」とCopilotが教えてくれました。
爺はVSCode使ってますのでその手順でご案内します。なお、VSCode以外でも同様のcargo build 作業でインストールできます。
- VSCodeで操作対象のプロジェクト(x_project)開く
- Cargo.tomlを開き
- [dependencies]が無ければ書き加え、次行に
- mysql="28" と書き込む(28 にしておけば28系最新版が入る)
- VSCodeのターミナルを使用、次行のように書き込み実行
- cargo build
「cargo build」実行で依存関係のダウンロードなどが行われます。これで、main.rsでMariaDBを使う Cargo.tomlの設定が完了しました。
Cargo.toml、できあがり例
[package] name = "x_project" version = "0.1.0" edition = "2024" [dependencies] mysql = "28"
Pythonと比較すると、厳格な分だけ面倒
Pythonの場合、VSCodeターミナルで pip install xxx ができたら、使うスクリプトで import xxx を書けば使えます。これは、ネット注文し宅配でうけとる感じです。一方、Rustだと、仕入れから店頭に並ぶまでさまざまな手順の整合性を大番頭がシッカリ見ている、というイメージでしょうか。
[dependencies]内に必要な記入をすませ、ターミナルから cargo build 実行・完了(するはず)ですから、注文から店頭に並べる前までは一直線に済む、と考えることができます。当然の伝票であれば、大番頭は黙って通してくれ大福帳にも記録が残る、と思えば、これに慣れるしかないですね。
次の記事は、main.rs内でMariaDB接続を実現するおそらく一番簡単な記述をご紹介予定です。