【MacでRust入門】Rust日本語版チュートリアルの要点まとめ ~ 第3回 Cargoとは

2022-08-15
Main Image

目次

こんにちは。

最近流行りのRustを初めてみよう!ということでチュートリアルを読み始めました。

内容を忘れないように & チュートリアルがTL;DRな方向けにブログ記事に要点をまとめていこうと思います。

前回は最も簡単なプログラムとしてHello Worldしました。

今回は第3回です。RustでHello Cargoしようと思います。

Cargoとは

Rustのビルドシステム兼パッケージマネージャ。

できることは

  • コードのビルド
  • 依存するライブラリのダウンロード
  • ライブラリのビルド

など。

要は、複数のライブラリを使うような複雑なRustプログラムを動かすための便利ツールです。

Cargoのインストール方法

実は第一回のインストールコマンドで、すでにRustと一緒にCargoが入っています。

インストールされているか確認するための、お決まりのバージョン確認。

$ cargo --vergion
cargo 1.63.0 (fd9c4297c 2022-07-01)

Cargoの使い方 1. プロジェクト作成

前回作ったhello_worldディレクトリの代わりに、cargoでプロジェクトを作ります。

$ cargo new hello_cargo
$ cd hello_cargo

すると、パッケージとしてすでにsrc/main.rs.gitignoreCargo.tomlが生成されています。(Gitリポジトリ内であれば.gitignoreは生成されません)

TOMLとは

.tomlはTOML(Tom's Obvious, Minimal Language)というCargoの設定ファイルフォーマットです。[]でセクションが区切られ、[package]にはコンパイルに必要な設定情報が、[dependencies]にはコードが依存するライブラリ(Rustではこれをクレートと呼びます)の情報が書かれます。

[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

[dependencies]

コードをsrcディレクトリに移動してCargo.tomlを自分で作れば、cargo newで開始していなくとも、Cargoプロジェクトになります。

Cargoの使い方 2. プロジェクトのビルド

次のコマンドでビルドします。

$ cargo build

するとtarget/debug/というディレクトリに実行可能ファイルが生成されます。

また、初回ビルドではCargo.lockというファイルができます。

version = 3

[[package]]
name = "hello_cargo"
version = "0.1.0"

まだ依存関係がないので情報は少ないですが、依存関係のバージョンを記録するものだそう。

Cargoの使い方 3. プロジェクトの実行

前回のHello Worldはコンパイルファイルの作成と実行が別々のコマンドでしたが、Cargoでは1コマンドでビルドから実行までを一度に行えます。

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
     Running `target/debug/hello_cargo`
Hello, world!

上記はビルド直後に行っているのでコンパイルの出力がないですが、ビルド後にコードを変更しているとコンパイルも行われるのでCompilingという出力の行も出ます。

Cargoの使い方 4. コードがコンパイル可能かチェック

コードを書きながらコンパイルが通るかエラーのチェックするのに便利なコマンド。

$ cargo check

定期的にチェックして、checkが問題なければビルドするという流れ。ビルドの方が実行ファイルを生成するステップを省略できるので時間がかかるため、エラー確認程度であればcheckの方が高速に実行できます。

まとめ

というわけで今回はRustのビルド&パッケージマネージャであるCargoの使い方を簡単にまとめました。

  • cargo new
    • プロジェクト作成
  • cargo build
    • ビルド
  • cargo run
    • ビルド & 実行
  • cargo check
    • コーディング中のエラーチェック

単純なプログラムならrustcコマンドと大差ないですが、クレートが増えるとビルドをCargoに任せられるので効果を発揮するようです。

次回はRustで簡単なゲームを作ります。

それでは〜

Rust オススメの参考書籍

▼ 入門者向け。Pythonとの比較あり。Kindleでも読める。

手を動かして考えればよくわかる 高効率言語 Rust 書きかた・作りかた

▼ 中級者向け。オライリーならではの詳解。硬派な方向け。

プログラミングRust 第2版

参考リンク

Rustチュートリアル (日本語版 非公式) https://doc.rust-jp.rs/book-ja/

ads【オススメ】未経験からプログラマーへ転職できる【GEEK JOBキャンプ】
▼ Amazonオススメ商品
ディスプレイライト デスクライト BenQ ScreenBar モニター掛け式
スマートLEDフロアライト 間接照明 Alexa/Google Home対応

Author

Penta

都内で働くITエンジニアもどき。好きなものは音楽・健康・貯金・シンプルでミニマルな暮らし。AWSクラウドやデータサイエンスを勉強中。学んだことや体験談をのんびり書いてます。TypeScript / Next.js / React / Python / AWS / インデックス投資 / 高配当株投資 More profile

Location : Tokyo, JPN

Contact : Twitter@penguinchord

Recommended Posts

Copy Right / Penguin Chord, ペンギンコード (penguinchord.com) 2022 / Twitter@penguinchord