
カジュアルに 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 のコードを書いていけます。