VITALIFY.ASIA logo

Rust言語入門:メモリ安全性と並行性を担保するコンパイラ言語の環境構築とcargoの活用

Author profile
Vitalify Asia Team2018/04/26
Rust言語入門:メモリ安全性と並行性を担保するコンパイラ言語の環境構築とcargoの活用

技術コミュニティで話題になっていたプログラミング言語「Rust」について調べ、実際に触ってみたので基礎的な内容をまとめました。

Rustとは?

Mozillaが支援・開発している、C++に代わるコンパイラ型のシステムプログラミング言語です。

Stack Overflowのアンケートでは「最も愛されているプログラミング言語」に連続で選ばれるなど、エンジニアからの熱狂的な支持を集めています。WebAssemblyとの親和性も高く、フロントエンドのパフォーマンス最適化の文脈でも注目されています。

Rustの強力な特徴

Rustの最大の特徴は、「安全性、速度、並行性」の3つに焦点を当てている点です。

  • 所有権(Ownership)と借用(Borrowing):ガベージコレクション(GC)を持たないにも関わらず、コンパイル時にメモリの安全性を保証します。メモリの解放忘れや二重解放といったバグを防ぎます。
  • データ競合の防止:マルチスレッドプログラミングにおいて、データ競合(Data Race)をコンパイル時に検出して防ぐことができます。
  • 高速な実行速度:ランタイムのオーバーヘッドが極めて少なく、CやC++と同等のスピードで動作します。

所有権などの概念は最初は少し難解に感じますが、「C++の出来の良い息子」という表現がしっくりくる、コンパイル時に非常に多くの恩恵を受けられる言語です。

環境構築(cargoとrustup)

macOS環境を前提に、ローカル環境の構築手順を紹介します。

【cargoとは】

Rust公式のビルドシステム兼パッケージマネージャーです。プロジェクトのビルド、テスト、依存関係の管理などを非常に高速に行います。

【rustupとは】

Rustのコンパイラやツールチェーン(stable, beta, nightlyなど)のバージョンを管理するためのツールです。環境構築はrustupを使うのが最も手軽です。

# Homebrewでrustupをインストール
brew install rustup

# rustupのセットアップを実行
rustup-init

環境が整ったら、Cargoを使って新しいプロジェクトを作成し、ビルド・実行してみます。

# 新しいプロジェクトを作成
cargo new hello_rust --bin
cd hello_rust

# ビルドして実行(一発で完了します!)
cargo run

2回目以降に実行した際、コードに変更がなければ再ビルドされずに即座に実行されます。Cargoが変更差分を検知し、ビルド時間を最小限に抑えてくれるため非常に快適です。

まとめ

変数の宣言(Rustでは変数に値を代入することを「束縛する」と表現します)や所有権の移動など、他の言語とは異なるパラダイムが多いですが、その厳密さゆえに堅牢なソフトウェアを構築できる素晴らしい言語だと感じました。

バイタリフィアジアでは、最新の技術トレンドを常にキャッチアップし、お客様のプロジェクトに最適な技術スタックを提案しています。モダンな言語を用いたシステム開発やオフショア体制の構築にご興味があれば、ぜひご相談ください。

1,000社以上の事業成長を支えた圧倒的な『スピードと柔軟性』で、御社のアイデアを最短で形にします。まずは無料で壁打ちしませんか?

無料相談はこちら
#Web & Cloud Infra

「Web & Cloud Infra」の関連記事

技術レポート:2026年におけるWebGPUの到達点

技術レポート:2026年におけるWebGPUの到達点

Toshihiko Nagaoka2026/02/11

全主要ブラウザで実用化されたWebGPU。WebGLからの性能向上やブラウザ上での機械学習など、最新の到達点をレポートします。

6週間でライブ配信サービスを開発【後編】スピード×品質を両立するアジャイル開発

6週間でライブ配信サービスを開発【後編】スピード×品質を両立するアジャイル開発

Aoi Yamashita2024/05/22

最新技術を用いたライブ配信アプリを、オフショアチームがわずか6週間で要件定義から実装まで完遂したアジャイル開発の裏側。

6週間で投げ銭ライブ配信サービスを開発【前編】LiveStreamアーキテクチャ

6週間で投げ銭ライブ配信サービスを開発【前編】LiveStreamアーキテクチャ

Aoi Yamashita2024/05/22

低遅延な動画配信基盤とスケーラブルなサーバーを用いた、投げ銭機能付き自社ライブ配信サービスのPoC開発事例(前編)。

ぼくはデューパー、なんでもきいてね!