Rustを初めてみた記録を書きます。
参考資料
基本は以下のURLに従います。
The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
Rustのインストール
rustupはRustをインストール・更新するツールです。まずは、rustupをインストールします。 rustupをインストールすると、Rustに関するいろいろなツールをも一緒にインストールされます。
とりあえず、以下を実行します。macOS 10.15.7を使ってます。fishです。
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
途中でインストール設定を聞かれたので、僕は、デフォルトでインストールしました。
1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >1
あと、上記のドキュメントにはありませんでしたが、rustupのインストール後、以下のようなメッセージが出ます。
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH environment variable. Next time you log in this will be done automatically.
「コマンドがインストールされたけど、パスは通ってないので、自分で通せ」という話ですかね。
10年くらい前の自分なら「パスって何だろう?どうやって通したらいいんだろう?」と思いながら、詰まったんだろうなあ。と思いながら、以下でコマンドがインストールされていることを確認しました。
> which rustup [1]> ls ~/.cargo/bin cargo* cargo-fmt* clippy-driver* rust-gdb* rustc* rustfmt* cargo-clippy* cargo-miri* rls* rust-lldb* rustdoc* rustup*
パスは通ってないものの、インストールはされているようです。
パスを通します。fishを使ってるので、以下のように書きます。(実際は他にもパスを書いてますが、省略)
~/.config/fish/config.fish
set PATH ~/.cargo/bin $PATH
そのあと、fishにログインし直して、パスが通っていることを確認します。
> which rustup /Users/mtb/.cargo/bin/rustup
はい。OK。
Hello Worldしてみる
こんなコードを書き、hello.rs
で保存します。拡張子は、.rs
のようです。
fn main(){ println!("Hello World!!"); }
以下のコマンドでコンパイルします。
rustc hello.rs
コンパイルしたら、 hello
という実行ファイルができているので、実行すると標準出力に出ます。
> ./hello Hello World!!
とりあえずここまでは簡単。
脱線:インストールされたツールを確認する
インストールしてHello Worldまで来たので、インストールされたツールが何なのかも確認しておきます。
と言っても、軽くhelpを読んだりリポジトリをサッと見るだけ。
- cargo: Rust's package manager(Rustのパッケージマネージャー)
- cargo-fmt: This utility formats all bin and lib files of the current crate using rustfmt.(rustfmtを使ってbinとlibをフォーマットするユーティリティ)
- clippy-driver: Checks a package to catch common mistakes and improve your Rust code.(Rustコードのパッケージをチェックし、よくあるミスを発見して改善するツール)
- rustc: (Rustのコンパイラ)
- rust-gdb: (おそらくRustのデバッガ)
- rustfmt: Format Rust code(Rustのフォーマッター)
- cargo-clippy: Checks a package to catch common mistakes and improve your Rust code.(Rustコードのパッケージをチェックし、よくあるミスを発見して改善するツール)
- cargo-miri: ???? (GitHubを見ると、Rustの実験的なインタープリタ。)
- rls: Rust Language Server (IDEとの連携用)
- rust-lldb: LLDB(コンパイラ基盤?)
- rustup: The Rust toolchain installer(Rustのツールインストーラ)
- rustdoc: Rustのドキュメント
公式のフォーマッターや静的解析ツール、Language Server、と最初から色々入ってるんだなあ、という印象を受けました。
とりあえず、cargo-fmtとrustfmt、cargo-clippyとclippy-driverの違いがよくわからないんですが、使っているととりあえずおいおいわかるんですかね。
とりあえず、終わり
これだけで、おわりかよっ!!って感じなんですが、今日は時間的にHello Worldと関連ツール調べただけで終わってしまいました。
次はもう少し、別のこともやってみたいところ。
また、気が向いたら、調べつつ、書きます。
ではでは。