開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. Rust >
  4. RustとIronでHello world!
RustとIronでHello world!

RustとIronでHello world!

こんにちは、ナカエです。

昨年くらいから「Rustはいいぞ」という声をよく聞くようになり、情報を追いかけています。Rustの特徴である所有権と借用の概念に悩まされることもまだありますが、絶賛されている理由の一端は見えてきました。

開発環境を整えるのも簡単になっているので、システムプログラミングにあまり縁がなくても、もっと気軽に入門すべき言語だと思います。

今回の記事は、まっさらな環境へのRustツールチェーンのインストールからRust製WebフレームワークのIronによるHello world!表示までをまとめたものです。「Web用途でもRustいけるやん」という気持ちになれます。

環境:Mac (El Capitan)
 

rustupのインストール

Rustツールチェーンの管理にはrustupが推奨されているようです。

rustup.rs公式サイト にあるコマンドを実行します。

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

β版ですと主張されますが、気にせずに 1)のProceed with installationを選んでインストールを続行します。

rustup.png

インストールが終了したら、ツールチェーンにパスを通すため、~/.bash_rcか.bash_profileに環境変数の読込を記述します

source $HOME/.cargo/env

プロジェクトの作成

ビルドシステム兼パッケージマネージャのCargoを利用して、新規にプロジェクトを作成します。
cargo new iron-test --bin

--binオプションはデフォルトのライブラリ用のテンプレートではなく実行可能なアプリケーション用のテンプレートを作成するためのものです。

Ironの導入

作成されたディレクトリのCargo.tomlを開いて利用するパッケージを記述します

[dependencies]
iron = "*"

Ironが依存解決できるか確認するため、一旦ビルドします。

cargo build

cargo_build.png

一度ビルドすると、Cargo.lockファイルが生成され、利用するパッケージのバージョンが記録されます。

Hello World!

src/main.rsを開いてコードを記述します。main()がバイナリから実行される際のエントリポイントです

extern crate iron;

use iron::prelude::*;
use iron::status;

fn main() {
    fn hello(_: &mut Request) -> IronResult {
        Ok(Response::with((status::Ok, "Hello world!")))
    }

    let _server = Iron::new(hello).http("localhost:3000").unwrap();

    println!("Server started on port 3000");
}

プロジェクトをビルド・実行します。

cargo run

ブラウザでhttp://localhost:3000にアクセスするとHello world!が表示されます

hello_world.png

  • posted by もりちゃん
  • Rust
TOPに戻る