Rust とは?

Rust

Rust最新情報

NRIのOpenStandiaが提供するRust最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Rustバージョンアップ情報

すべてを見る

更新日:2022-09-27

Rustの概要

Rust(ラスト)は、Mozillaが支援するオープンソースのシステムプログラミング言語です。
2006年の開発初期はC++の問題点を改善するために個人(Graydon Hoare氏)が設計・開発しているプロジェクトでしたが、2009年にMozillaが開発に関わり始め、Mozilla Researchの公式プロジェクトになりました。
Rustは関数型プログラミング、オブジェクト指向プログラミング、手続き型プログラミングなどをサポートするマルチパラダイムプログラミング言語で、「安全性」「速度」「並行性」の3つを実現することを目標としています。主に関数型に重点を置いていて、C++においては、困難であったメモリ管理(安全性)を容易にしながら、高速に動作するアプリケーションを開発できる言語として、成長を続けています。
主な採用例としては、Firefox Quantumの一部のコンポーネントが、Gecko(従来のレンダリングエンジン)のものから、Servo(Rustで開発されたレンダリングエンジン)のものに置き換えられています。

2010年に初版がリリースされ、2015年には1.0版がリリースされています。1.0版以降は後方互換を保って6週間間隔で定期的にリリースされるようになっています。
2018年にリリースされた1.31版からはエディション制が導入され、それまでのRustをRust2015、以降をRust2018と呼称するようになりました。また、2021年にリリースされた1.56版からはRust2021も追加されています。
また、Stack Overflow Developer Surveyの「最も愛されているプログラミング言語」第1位を2016年から2022年まで7年連続で獲得しています。

TOPに戻る

Rustの主な特徴

マルチパラダイムプログラミング言語 複数のプログラミングパラダイムに対応したプログラミング言語の総称で、Rustでは関数型プログラミング、並列アクターモデル、オブジェクト指向プログラミング、手続き型プログラミング、ジェネリックプログラミングをサポートしています。
ゼロコスト抽象化 抽象化を行うにあたり、理想的な量のコストしか使わないという思想でRustのトレイトでは、静的ディスパッチ(実際に使っている具体的な型を当てはめて、具体的な関数を作成する)によって一切の抽象化コストを払う必要がありません。
メモリの自動管理 Rustでは、GC(ガベージコレクション)は存在せず、メモリ管理は自動で行われます。そのため、「明示的なメモリ解放」などのメモリに関する操作がほぼ不要となっています。
メモリの安全性 強力な型システムとリソース管理の仕組みにより、メモリセーフな安全性が保証されています。メモリはコンパイル時にコンパイラが並行性バグを含む不具合箇所のチェックを行い、全てのデータ競合を排除します。
オーナーシップ(所有権)システム Rustでは、1つのリソース(値X)は1つの所有者(変数A)のみに関連付けられるという制約があります。不必要なリソースを複数で持たないための制約で、これはゼロコスト抽象化を担う機能となっています。
ムーブセマンティクス 前項(オーナーシップ)の値Xを変数Aへ格納した後、さらに値Xを変数Bへ格納すると、変数Aから変数Bへリソースの所有権が譲渡され元の変数Aから値Xの参照はできなくなります。これにより、不要なリソースを破棄し、メモリの安全性を保っています。
参照と借用 前項までの概念では、リソースの所有権が無い限り、リソースを参照することもできなくなります。
それでは利便性が損なわれるため、リソースを複数で共有するのではなく、条件付で所有権を借用し、参照と書き込み可能なミュータブル参照という形で利用することも可能としています。
ライフタイム Rustでは、全ての参照でライフタイムを持っています。これは変数のスコープのようなもので、ライフタイムが終了した参照は使用することができなくなります。これも所有権と関連し、メモリの安全性を保つための概念となります。

TOPに戻る

Rustのユースケース

RustはデバイスドライバーやOSのような低レイヤーのコードから、アプリケーションなどの高レイヤーのコードまで、他の言語が苦手とする様々なユースケースに対応可能です。

  • コマンドラインアプリケーション
  • Webサーバ
  • 組み込みデバイス
  • 暗号化通信
  • IoTアプリケーション
  • 機械学習

TOPに戻る

Rustと類似性のある言語

  • C++
  • C#
  • F#
  • Kotlin
  • Nim
  • Golang
  • Elixir

TOPに戻る

Rustの動作環境

  • Linux
  • macOS
  • Windows

TOPに戻る

Rustのライセンス

Rustのライセンスは、 「Apacheライセンスバージョン2.0」(Apache License version2.0)と「MITライセンス」のデュアルライセンスに基づいて公開されています。

TOPに戻る

Rustのダウンロード

Rustのダウンロードページ

TOPに戻る

参考情報

Wikipedia(日本語) - Rust
Rust公式サイト
GitHubリポジトリー

TOPに戻る

Rustのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO