読み方 : ラスト

Rust

概要

Rustとは、プログラミング言語の一つで、安全性と高性能を両立したシステム向けの言語。C言語やC++と同等の処理速度を持ちながら、メモリ管理にまつわる致命的なバグコンパイル時に防ぐ仕組みを備えている。
Rustのイメージ画像

従来、オペレーティングシステム(OS)のようなハードウェア制御を伴う分野や、極めて高速な処理が要求される分野ではC言語やC++言語が用いられることが多かったが、データを保管するメモリ領域の管理をプログラマが明示的に行わなければならず、しばしば深刻な欠陥の原因となってきた。

Rustはこのような用途で十分な性能を確保しつつ、メモリ安全性の問題を言語仕様の段階で防ぐことを重視している。実行時に確保するメモリ領域について「所有権」(ownership)と「借用」(borrowing)と呼ばれる仕組みを導入し、プログラムの実行前にメモリの使用ルールを検証することができる。

これにより、解放済みメモリへのアクセスや二重解放、並行処理マルチスレッド)におけるデータ競合といったメモリ使用にまつわる不具合をコンパイル時に検出して訂正することができる。従来のメモリ安全性が高い言語で用いられてきたガベージコレクション機構を使わないため、実行時のオーバーヘッドが小さく、リアルタイム性や性能が重視される分野でも利用しやすい。

近年、いわゆるスクリプト言語で発達した開発環境の利便性も意識しており、開発者の生産性を高めるための強力なエコシステムを提供している。「クレート」(crate)の名称で提供されるライブラリや、パッケージマネージャビルドツールの「Cargo」が公式の開発環境として整備されている。依存関係の管理やビルド、テストの自動化が容易で、開発効率の高さにも定評がある。

RustはもともとWebブラウザFirefox」のレンダリングエンジンを開発するために生み出された言語で、安全性と性能を同時に求められる用途に適している。OSカーネルからWebAssemblyを用いたWebアプリケーションまで幅広い用途で利用可能であり、近年ではC++などで書かれた既存システムの一部をRustで置き換える取り組みも見られる。オープンソースコミュニティによる継続的な開発と仕様改善が進められ、実用的なシステム開発言語として位置付けられている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。