見出し画像

カジュアルに Rust を書く

Rust でちょっとしたツールを書きたいときにもっとカジュアルに書いて、それをどこからでも実行できるようにするまでのメモです。

Rust で何か新しいプロジェクトをつくるときは、

$ cargo new <project-name>

とするのが普通ですが、あらかじめつくっておいた特定のディレクトリに *.rs ファイルをつくってコードを書いてコンパイルするだけでどこからでも実行できるようにします。

Rust のインストール

公式: https://www.rust-lang.org/tools/install

$ curl https://sh.rustup.rs -sSf | sh

PATH を通す

export PATH="$HOME/.cargo/bin:$PATH"

次のように rustc コマンドや cargo コマンドが使えるようになっていれば Rust のインストールは完了です。

$ rustc --version
$ cargo --version

ベースとなるパッケージをつくる

$ cargo new <package-name>

ここでつくられたディレクトリの下に src ディレクトリがあるのでそこに bin というディレクトリをつくります。
そして、その下に Rust のファイル *.rs をつくってコードを書いていきます。

例: <package-name>/src/bin/hello_world.rs

fn main() {
    println!("Hello, world!");
}

コンパイルして実行する

$ cargo run --bin hello_world

cargo run コマンドにこのようにオプションを渡すと src/main.rs ではなく src/bin/hello_world をコンパイルして実行できます。

ビルドする

$ cargo build --release

ビルドすると <package-name>/target/release の下に実行ファイルがつくられます。(src/bin の下にあるものを全てまとめてビルドし、別々の実行ファイルがつくられます)

ビルドしたものを実行する

$ ./target/release/hello_world

このように直接指定しても実行できますが、どこからでも呼び出せるようにしておいた方が便利なので次のように <package-name>/target/release に PATH を通しておきます。

export PATH="$HOME/path/to/package-name/target/release:$PATH"

これでどこからでもビルドしたファイルを実行できるようになりました。

$ hello_world
Hello, world!

ここまで環境ができれば src/bin の下に好きなだけ Rust のコードを書いていけます。