Rust(プログラミング言語)

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

さび
A capitalised letter R set into a sprocket
Rustの公式ロゴ
パラダイムマルチパラダイムコンカレント機能的ジェネリック命令型構造化
によって設計されたグレイドン・ホアレ
デベロッパーRust Foundation
初登場2010年7月7日; 11年前 (2010-07-07)
安定リリース
1.56.1 [1] Edit this on Wikidata / 2021年11月1日; 30日前 (November 1, 2021)
規律の入力アフィン推定名目静的強い
実装言語さび
プラットホームAMD64i686armAArch64armv7mipsmips64mipselmips64elpowerpcpowerpc64powerpc64lerisc-vs390x [注1]
OSWindowsLinuxmacOSFreeBSDNetBSD
ライセンスMITまたはApache2.0 [2]
ファイル名拡張子.rs、.rlib
Webサイトwww .rust-lang .org
に影響を受けた
影響を受ける

錆があり、マルチパラダイム汎用プログラミング言語用に設計されたパフォーマンス安全性、特に安全な同時実行[12] [13] Rustは構文的C ++似ています[14]ボローチェッカー使用し参照を検証することでメモリの安全性を保証できます[15] Rustガベージコレクションなしでメモリの安全性を実現し参照カウントはオプションです。[16] [17]さびはシステムプログラミング言語であり、関数型プログラミングなどの高レベルの機能に加えて低レベルの メモリ管理のためのメカニズムも提供します

錆はもともとでグレイドンホーアによって設計されたMozillaの研究[18]デイブ・ハーマン、からの拠出金でブレンダン・アイクなど。[19] [20]の書き込み中に設計者が言語を精製サーボ実験ブラウザエンジン[21]及びさびコンパイラ。業界での使用が増えておりMicrosoftは安全で安全性が重要なソフトウェアコンポーネントの言語を実験しています。[22] [23]

Rustは、2016年以降毎年Stack Overflow Developer Surveyで「最も愛されているプログラミング言語」に選ばれていますが、2021年の調査では回答者の7%しか使用していません。[24]

歴史

Rustプログラムのコンパイル例

この言語は、Mozillaの従業員GraydonHoareによって2006年に開始された個人的なプロジェクトから生まれました。[13] Hoareは、このプロジェクトはさび病菌にちなんで名付けられた可能性があり、その名前も「ロバスト」の部分文字列であると述べています。[25] Mozillaは2009年のプロジェクトのスポンサー始まった[13]そして2010年にそれを発表しました[26] [27]同じ年で、仕事は初期からずれコンパイラ(で書かれたOCamlに)LLVMベースのセルフホスティングコンパイラ書かさびで。[28] rustcという 名前で、2011年に正常にコンパイルされました。[29]

Rustコンパイラの最初の番号付きプレアルファリリースは2012年1月に発生しました。[30]最初の安定リリースであるRust1.0は2015年5月15日にリリースされました。[31] [32] 1.0以降、安定ポイントリリースは毎回配信されます6週間、機能は毎日のリリースで毎晩Rustで開発され、その後6週間続くベータリリースでテストされます。[33] [34] 2〜3年ごとに、新しいRust「エディション」が作成されます。これは、Rust's Trainのリリーススケジュールが頻繁に発生するため、変更の簡単な参照ポイントを提供するとともに、重大な変更を行うためのウィンドウを提供するためです。エディションはほぼ互換性があります。[35]

従来の静的型付けに加えて、バージョン0.4より前では、Rustはtypestatesもサポートしていましたタイプステートシステムは、特別なcheckステートメントを使用して、プログラムステートメントの前後のアサーションをモデル化しました不一致はCまたはC ++コードのアサーションの場合のように、実行ではなくコンパイル時発見される可能性があります。タイプステートの概念は、言語NILで最初に導入されたため、Rustに固有のものではありませんでした[36]タイプステートは実際にはほとんど使用されていなかったため削除されましたが、[37] Rustの移動セマンティクスを活用することで同じ機能を実現できます。[38]

オブジェクトシステムのバージョン0.2、0.3内で大きく変化スタイル、及びさびの0.4。バージョン0.2では初めてクラス導入され、バージョン0.3では、インターフェイスを使用したデストラクタポリモーフィズムなど、いくつかの機能が追加されました。 Rust 0.4では、継承を提供する手段として特性が追加されました。インターフェイスはトレイトと統合され、個別の機能として削除されました。クラスも削除され、実装と構造化タイプの組み合わせに置き換えられました[39]

Rust0.9から始まりRust0.11で終わる、Rustには2つの組み込みポインタタイプがありました:~@、コアメモリモデルを単純化します標準ライブラリのこれらのポインタ型Boxand(現在は削除されています)として再実装しましたGc

2014年1月、最初の安定したリリースであるRust 1.0の前に、Dr。Dobb'sの編集長であるAndrew Binstockが、RustがC ++や他の新進気鋭の言語DGoの競争相手になる可能性についてコメントしました。、およびNim(当時はNimrod)。Binstockによると、Rustは「非常にエレガントな言語として広く見られていました」が、バージョン間で繰り返し変更されたため、採用が遅れました。[40]

Rustには、C言語などから呼び出すことができ、Cを呼び出すことができる外部関数インターフェイス(FFI)があります。C++の呼び出しは歴史的に(どの言語からでも)困難でしたが、RustにはライブラリCXXがあり、またはを呼び出すことができます。 C ++から、「CXXのオーバーヘッドはゼロまたはごくわずかです。」[41]

2020年8月、Mozillaは、COVID-19パンデミックの長期的な影響によって引き起こされた企業再編の一環として、世界中の1,000人の従業員のうち250人を解雇しました[42] [43]解雇された人々の中には、ほとんどのRustチームが含まれ、[44] [より良い情報源が必要]、Servoチームは完全に解散した。[45] [より良い情報源が必要]このイベントは、Rustの将来について懸念を引き起こしました。[46]

翌週、Rust Core Teamはレイオフの深刻な影響を認め、RustFoundationの計画が進行中であることを発表しました。財団の最初の目標は、すべての商標ドメイン名の所有権を取得し、それらの費用についても財政的責任を負うことです。[47]

2021年2月8日、Rust Foundationの設立は、5つの創設企業(AWSHuaweiGoogleMicrosoft、Mozilla)によって正式に発表されました[48] [49]

2021年4月6日、GoogleはC / C ++の代替としてAndroidOpen SourceProject内でRustをサポートすることを発表しました[50]

構文

これが「Hello、World!」です。Rustで書かれたプログラムprintln! マクロは、メッセージを出力し、標準出力

fn  main (){ 
    println!"Hello、World!" );
}

構文さびのは同様であるCおよびC ++コードのブロックで区切らで、中括弧、および制御フローのようなキーワードifelsewhile、およびfor機能を定義するための具体的な構文は、より類似しているが、パスカル。 CおよびC ++に似ていますが、Rustの構文はMLファミリーの言語およびHaskell言語の構文に近いです。関数本体のほぼすべての部分はであり[51]、制御フロー演算子ですらあります。たとえば、通常のif表現も代わりになりますCの3項条件ALGOL60で使用されるイディオムLispの場合と同様に、関数はreturn式で終わる必要はありません。この場合、セミコロンを省略すると、次階乗関数の再帰的実装に示すように、関数の最後の式が戻り値を作成します。

fn 階乗iu64   -> u64  {
    一致するi {  
        0 => 1   
        n => n *階乗n - 1     
    }
}

次の反復実装では、..=演算子を使用して包括的範囲を作成します。

fn 階乗iu64   -> u64  {
    2 .. = i )。製品()
}

機能

MozillaのRustチームのEmilyDunhamによるRustに関するプレゼンテーションlinux.conf.auカンファレンス、ホバート、2017年)

錆が高い同時性の高い安全のための言語であることが意図されているシステム[52]及び大型でプログラミング、すなわち、作成、大システムの整合性を保つ境界を維持します。[53]これにより、安全性、メモリレイアウトの制御、および同時実行性に重点を置いた機能セットが生まれました

メモリの安全性

Rustはメモリセーフになるように設計されていますnullポインターダングリングポインター、またはデータ競合は許可されません[54] [55] [56]データ値は、固定されたフォームのセットを介してのみ初期化できます。これらはすべて、入力がすでに初期化されている必要があります。[57]NULLリンクリストやバイナリツリー データ構造など 、有効またはのいずれかであるポインタを複製するために、Rustコアライブラリはオプションタイプを提供します。これを使用して、ポインタにSomeがあるかどうかをテストできますNone[55] Rustはライフタイムを管理するための構文を追加しましたボローチェッカーによってコンパイル時にチェックされます安全でないコードは、unsafeキーワードを使用してこれらの制限の一部を覆す可能性があります。[15]

メモリ管理

Rustは自動ガベージコレクションを使用しませんメモリおよびその他のリソースは、リソース取得が初期化規則[58]であり、オプションの参照カウントを使用して管理されますRustは、非常に低いオーバーヘッドで、リソースの決定論的な管理を提供します[59] Rustは値のスタック割り当て優先し、暗黙的なボクシングを実行しません

&実行時の参照カウントを含まない記号を使用した参照の概念があります。このようなポインターの安全性はコンパイル時に検証され、ダングリングポインターやその他の形式の未定義動作を防ぎますRustの型システムは、フォームの共有された不変のポインターを、フォームの&T一意の変更可能なポインターから分離し&mut Tます。可変ポインターは不変ポインターに強制変換できますが、その逆はできません。

所有権

錆はすべての値が一意の所有者が所有するシステムを有しており、スコープ値は、所有者の範囲と同じです。[60] [61]値は、を使用して不変の参照によって、を使用&Tして可変の参照&mut Tによって、またはを使用して値によって渡すことができますT常に、複数の不変の参照または1つの可変の参照(暗黙のリーダー-ライターロック)のいずれかが存在する可能性がありますRustコンパイラは、コンパイル時にこれらのルールを適用し、すべての参照が有効であることも確認します。

タイプとポリモーフィズム

型システムは、と同様のメカニズムをサポート型クラスと呼ばれる、特性に触発され、Haskellの言語を。この機能はアドホック多相性のためのものであり、型変数宣言に制約を追加することによって実現されます。

Rustはキーワードで宣言された変数に型推論使用しますこのような変数では、タイプを決定するために最初に値を割り当てる必要はありません。コードのいずれかのブランチが割り当てなしで変数を離れると、コンパイル時エラーが発生します。[62]複数回割り当てられた変数は、キーワード(mutableの略)でマークする必要があります letmut

関数にはジェネリック パラメーターを指定できます。これは通常、ジェネリック型を制約して特定の1つまたは複数のトレイトを実装します。このような関数内では、総称値はこれらの特性を介してのみ使用できます。これは、ジェネリック関数が定義されるとすぐに型チェックできることを意味します。

Rustジェネリックの実装は、C ++テンプレートの一般的な実装と似ています。つまり、インスタンス化ごとにコードの個別のコピーが生成されます。これは単形化と呼ばれ、JavaやHaskellで通常使用される型消去スキームとは対照的です。 Rustの型消去は、キーワードを使用して利用することもできますdyn。単形化の利点は、特定のユースケースごとに最適化されたコードです。欠点は、コンパイル時間と結果のバイナリのサイズが増えることです。

Rustでは、ユーザー定義型がstructキーワードで作成されます。これらのタイプには通常、他の言語のオブジェクトやクラスなどのデータのフィールドが含まれています。implキーワードは、構造体のメソッドを定義(データおよび機能を構造体に別々に定義されている)、または実装することができる形質構造のために。トレイトは、構造に特定の必要なメソッドが実装されているという契約です。トレイトは、ジェネリックパラメーターを制限するために使用されます。トレイトは、ユーザー定義よりも多くのメソッドを構造体に提供できるためです。たとえば、特性でIteratornext、タイプに対してメソッドを定義する必要があります。一旦nextメソッドが定義されている形質は地図やフィルタ等イテレータにわたって共通の機能ヘルパーメソッドを提供します。

Rust内のオブジェクトシステムは、実装、特性、および構造化タイプに基づいています。実装は、他の言語内のクラスと同様の役割を果たし、キーワードで定義されimplます。特性は継承とポリモーフィズムを提供します。これらを使用すると、メソッドを定義て実装に組み込むことができます。構造化タイプは、フィールドを定義するために使用されます。実装とトレイトはフィールド自体を定義することはできず、トレイトのみが継承を提供できます。他の利点の中でも、これはC ++のように多重継承のダイヤモンド問題防ぎます。言い換えると、Rustはインターフェースの継承をサポートしますが、実装の継承を構成に置き換えます。見る継承をめぐる構成

コンポーネント

Rustは、Rust機能セットを拡張し、Rust開発を容易にする多数のコンポーネントを備えています。コンポーネントのインストールは通常、Rustプロジェクトによって開発されたRustツールチェーンインストーラーあるrustupによって管理されます。[63]

貨物

CargoはRustのビルドシステムおよびパッケージマネージャーです。Cargoは、依存関係のダウンロードと依存関係の構築を処理します。Cargoは、clippyやその他のRustコンポーネントのラッパーとしても機能します。プロジェクトは特定のディレクトリ構造に従う必要があります。[64]

Rustパッケージの依存関係は、Cargoで指定されています。tomlファイルとバージョン要件。依存関係のどのバージョンがパッケージと互換性があるかをCargoに通知しますデフォルトでは、カーゴは、ユーザーが貢献し、レジストリからその依存関係をソースcrates.ioが、Gitのローカルファイルシステム内のリポジトリとパッケージは、あまりにも、依存関係として指定することができます。[65]

Rustfmt

Rustfmtは、Rustのコードフォーマッターです。Rustソースコードを入力として受け取り、空白とインデント変更して、rustfmt.tomlファイルで指定されたRustスタイルガイドまたはルールに従ってフォーマットされたコードを生成します。Rustfmtは、スタンドアロンプ​​ログラムとして、またはCargoを介してRustプロジェクトで呼び出すことができます。[66] [67]

Clippy

Clippyは、錆の組み込みであるリンティング正確性、パフォーマンス、および錆コードの可読性を向上させるためのツール。これは2014年に作成され[68]MicrosoftOffice名を冠した機能にちなんで名付けられました[69] 2021年の時点で、Clippyには450を超えるルールがあり[70]オンラインで閲覧してカテゴリ別にフィルタリングできます。[71]一部のルールはデフォルトで無効になっています。

RLS

RLSは、IDEテキストエディタにRustプロジェクトに関する詳細情報を提供する言語サーバーですそれを介してリンティングチェックを提供Clippy介しフォーマット、Rustfmt、自動コード完了を介しレーサー他の機能の中で、。[72]レーサーの開発は錆分析装置を支持して減速された[73]

言語拡張

手続き型マクロメカニズムを使用してRust言語を拡張することが可能です。[74]

手続き型マクロは、コンパイル時に実行されるRust関数を使用して、コンパイラのトークンストリームを変更します。これは、同様の目標を達成するためにパターンマッチングを使用する宣言型マクロメカニズム(例でマクロとも呼ばれます)を補完します

手続き型マクロには、次の3つの種類があります。

  • 関数のようなマクロ custom!(...)
  • マクロを導き出す #[derive(CustomDerive)]
  • 属性マクロ #[custom_attribute]

println!マクロは、関数のようなマクロの一例であるserde_derive[75]のような多くの形式でデータの読み取りと書き込みを行うためのコードを生成するために一般的に使用されるライブラリであるJSONを属性マクロはextendrRへのRustバインディング用ライブラリなどの言語バインディングに一般的に使用されます[76]

次のコードに示すの使用SerializeDeserializeおよびDebugJSONの読み書きだけでなく、デバッグするための構造をフォーマットする機能を実装するための手続きのマクロを導き出します。

serde_jsonを使用する:: { Serialize Deserialize };  

#[derive(Serialize、Deserialize、Debug)]
構造体 ポイント{ 
    xi32 
    yi32 
}

fn  main (){ 
    ポイント={ X1 Y2 }。       

    聞かせてシリアライズ= serde_json :: TO_STRING ポイント)。アンラップ();   
    println!"シリアル化= {}" シリアル化); 

    聞かせて、デシリアライズポイント= serde_json :: from_str 連載)。アンラップ();   
    println!"deserialized = {:?}" deserialized ); 
}

パフォーマンス

Rust aims "to be as efficient and portable as idiomatic C++, without sacrificing safety".[77] Since Rust utilizes LLVM, any performance improvements in LLVM also carry over to Rust.[78]

Adoption

A bright orange crab icon
Some Rust users refer to themselves as Rustaceans (a pun on crustacean) and use Ferris as their unofficial mascot.[79]

Rust was the third-most-loved programming language in the 2015 Stack Overflow annual survey[80] and took first place for 2016–2021.[81][82]

Web browsers

Firefox has two projects written in Rust: the Servo parallel browser engine[83] developed by Mozilla in collaboration with Samsung;[84] and Quantum, which is composed of several sub-projects for improving Mozilla's Gecko browser engine.[85]

Experimental operating systems

  • Redox, a "full-blown Unix-like operating system" including a microkernel[86]
  • Theseus, OS with "intralingual design" and a fundamental architecture which embodies Rust concepts[87]

Game engines

Other

Governance

Rust Foundation
Rust Foundation logo.png
FormationFebruary 8, 2021; 9 months ago (2021-02-08)
Founders
TypeNonprofit organization
Location
Shane Miller
Rebecca Rumbul
Websitefoundation.rust-lang.org

The Rust Foundation is a non-profit membership organization incorporated in Delaware, United States, with the primary purposes of supporting the maintenance and development of the language, cultivating the Rust project team members and user communities, managing the technical infrastructure underlying the development of Rust, and managing and stewarding the Rust trademark.

It was established on February 8, 2021, with five founding corporate members (Amazon Web Services, Huawei, Google, Microsoft, and Mozilla).[101] The foundation's board is chaired by Shane Miller.[102] Starting in late 2021, its Executive Director and CEO is Rebecca Rumbul .[103] Prior to this, Ashley Williams was interim executive director.[104]

Development

Rust conferences include:

See also

Notes

  1. ^ The list is incomplete; degree of stdlib support varies

References

  1. ^ "Announcing Rust 1.56.1".
  2. ^ a b c d e f g h i j k l m "The Rust Reference: Appendix: Influences". Archived from the original on January 26, 2019. Retrieved November 11, 2018.
  3. ^ "Note Research: Type System". GitHub. February 1, 2015. Archived from the original on February 17, 2019. Retrieved March 25, 2015.
  4. ^ "RFC for 'if let' expression". GitHub. Archived from the original on March 4, 2016. Retrieved December 4, 2014.
  5. ^ "Command Optimizations?". June 26, 2014. Archived from the original on July 10, 2019. Retrieved December 10, 2014.
  6. ^ "Idris – Uniqueness Types". Archived from the original on November 21, 2018. Retrieved November 20, 2018.
  7. ^ Jaloyan, Georges-Axel (October 19, 2017). "Safe Pointers in SPARK 2014". arXiv:1710.07047. Bibcode:2017arXiv171007047J. Cite journal requires |journal= (help)
  8. ^ Lattner, Chris. "Chris Lattner's Homepage". Nondot.org. Archived from the original on December 25, 2018. Retrieved May 14, 2019.
  9. ^ "Microsoft opens up Rust-inspired Project Verona programming language on GitHub". ZDNet. Archived from the original on January 17, 2020. Retrieved January 17, 2020.
  10. ^ "PHP RFC: Shorter Attribute Syntax". June 3, 2020. Archived from the original on March 7, 2021. Retrieved March 17, 2021.
  11. ^ Hoare, Graydon (December 28, 2016). "Rust is mostly safety". Graydon2. Dreamwidth Studios. Archived from the original on May 2, 2019. Retrieved May 13, 2019.
  12. ^ a b c "FAQ – The Rust Project". Rust-lang.org. Archived from the original on June 9, 2016. Retrieved June 27, 2019.
  13. ^ "Rust vs. C++ Comparison". Archived from the original on November 20, 2018. Retrieved November 20, 2018.
  14. ^ a b "Unsafe Rust". Archived from the original on October 14, 2020. Retrieved October 17, 2020.
  15. ^ "Fearless Security: Memory Safety". Archived from the original on November 8, 2020. Retrieved November 4, 2020.
  16. ^ "Rc<T>, the Reference Counted Smart Pointer". Archived from the original on November 11, 2020. Retrieved November 4, 2020.
  17. ^ "Rust language". Archived from the original on September 6, 2020. Retrieved September 9, 2020. Mozilla was the first investor for Rust and continues to sponsor the work of the open source project. Mozilla also utilizes Rust in many of its core initiatives including Servo and key parts of Firefox.
  18. ^ Noel (July 8, 2010). "The Rust Language". Lambda the Ultimate. Archived from the original on November 23, 2012. Retrieved October 30, 2010.
  19. ^ "Contributors to rust-lang/rust". GitHub. Archived from the original on May 26, 2020. Retrieved October 12, 2018.
  20. ^ Bright, Peter (April 3, 2013). "Samsung teams up with Mozilla to build browser engine for multicore machines". Ars Technica. Archived from the original on December 16, 2016. Retrieved April 4, 2013.
  21. ^ "Why Rust for safe systems programming". Archived from the original on July 22, 2019. Retrieved July 22, 2019.
  22. ^ "How Microsoft Is Adopting Rust". August 6, 2020. Archived from the original on August 10, 2020. Retrieved August 7, 2020.
  23. ^ "Stack Overflow Developer Survey 2021". Stack Overflow. Retrieved August 3, 2021.
  24. ^ Hoare, Graydon (June 7, 2014). "Internet archaeology: the definitive, end-all source for why Rust is named "Rust"". Reddit.com. Archived from the original on July 14, 2016. Retrieved November 3, 2016.
  25. ^ "Future Tense". April 29, 2011. Archived from the original on September 18, 2012. Retrieved February 6, 2012.
  26. ^ Hoare, Graydon (July 7, 2010). Project Servo (PDF). Mozilla Annual Summit 2010. Whistler, Canada. Archived (PDF) from the original on July 11, 2017. Retrieved February 22, 2017.
  27. ^ Hoare, Graydon (October 2, 2010). "Rust Progress". Archived from the original on August 15, 2014. Retrieved October 30, 2010.
  28. ^ Hoare, Graydon (April 20, 2011). "[rust-dev] stage1/rustc builds". Archived from the original on July 20, 2011. Retrieved April 20, 2011.
  29. ^ catamorphism (January 20, 2012). "Mozilla and the Rust community release Rust 0.1 (a strongly-typed systems programming language with a focus on memory safety and concurrency)". Archived from the original on January 24, 2012. Retrieved February 6, 2012.
  30. ^ "Version History". GitHub. Archived from the original on May 15, 2015. Retrieved January 1, 2017.
  31. ^ The Rust Core Team (May 15, 2015). "Announcing Rust 1.0". Archived from the original on May 15, 2015. Retrieved December 11, 2015.
  32. ^ "Scheduling the Trains". Archived from the original on January 2, 2017. Retrieved January 1, 2017.
  33. ^ "G - How Rust is Made and "Nightly Rust" - The Rust Programming Language". doc.rust-lang.org. Retrieved May 22, 2021.
  34. ^ "What are editions? - The Edition Guide". doc.rust-lang.org. Retrieved May 22, 2021.
  35. ^ Strom, Robert E.; Yemini, Shaula (1986). "Typestate: A Programming Language Concept for Enhancing Software Reliability" (PDF). IEEE Transactions on Software Engineering: 157–171. doi:10.1109/TSE.1986.6312929. ISSN 0098-5589. S2CID 15575346. Archived (PDF) from the original on July 14, 2010. Retrieved November 14, 2010.
  36. ^ Walton, Patrick (December 26, 2012). "Typestate Is Dead, Long Live Typestate!". GitHub. Archived from the original on February 23, 2018. Retrieved November 3, 2016.
  37. ^ Biffle, Cliff (June 5, 2019). "The Typestate Pattern in Rust". Archived from the original on February 6, 2021. Retrieved February 1, 2021.
  38. ^ "[rust-dev] Rust 0.4 released". mail.mozilla.org. Retrieved October 31, 2021.
  39. ^ Binstock, Andrew. "The Rise And Fall of Languages in 2013". Dr Dobb's. Archived from the original on August 7, 2016. Retrieved December 11, 2015.
  40. ^ "Safe Interoperability between Rust and C++ with CXX". InfoQ. December 6, 2020. Retrieved January 3, 2021.
  41. ^ Cimpanu, Catalin (August 11, 2020). "Mozilla lays off 250 employees while it refocuses on commercial products". ZDNet. Retrieved December 2, 2020.
  42. ^ Cooper, Daniel (August 11, 2020). "Mozilla lays off 250 employees due to the pandemic". Engadget. Archived from the original on December 13, 2020. Retrieved December 2, 2020.
  43. ^ @tschneidereit (August 12, 2020). "Much of the team I used to manage was part of the Mozilla layoffs on Tuesday. That team was Mozilla's Rust team, and Mozilla's Wasmtime team. I thought I'd know how to talk about it by now, but I don't. It's heartbreaking, incomprehensible, and staggering in its impact" (Tweet). Retrieved December 2, 2020 – via Twitter.
  44. ^ @asajeffrey (August 11, 2020). "Mozilla is closing down the team I'm on, so I am one of the many folks now wondering what the next gig will be. It's been a wild ride!" (Tweet). Retrieved December 2, 2020 – via Twitter.
  45. ^ Kolakowski, Nick (August 27, 2020). "Is Rust in Trouble After Big Mozilla Layoffs?". Dice. Archived from the original on November 24, 2020. Retrieved December 2, 2020.
  46. ^ "Laying the foundation for Rust's future". Rust Blog. August 18, 2020. Archived from the original on December 2, 2020. Retrieved December 2, 2020.
  47. ^ "Rust Foundation". foundation.rust-lang.org. February 8, 2021. Archived from the original on February 9, 2021. Retrieved February 9, 2021.
  48. ^ "Mozilla Welcomes the Rust Foundation". Mozilla Blog. February 9, 2021. Archived from the original on February 8, 2021. Retrieved February 9, 2021.
  49. ^ Amadeo, Ron (April 7, 2021). "Google is now writing low-level Android code in Rust". Ars Technica. Archived from the original on April 8, 2021. Retrieved April 8, 2021.
  50. ^ "rust/src/grammar/parser-lalr.y". GitHub. May 23, 2017. Retrieved May 23, 2017.
  51. ^ Avram, Abel (August 3, 2012). "Interview on Rust, a Systems Programming Language Developed by Mozilla". InfoQ. Archived from the original on July 24, 2013. Retrieved August 17, 2013.
  52. ^ "Debian -- Details of package rustc in sid". packages.debian.org. Archived from the original on February 22, 2017. Retrieved February 21, 2017.
  53. ^ Rosenblatt, Seth (April 3, 2013). "Samsung joins Mozilla's quest for Rust". Archived from the original on April 4, 2013. Retrieved April 5, 2013.
  54. ^ a b Brown, Neil (April 17, 2013). "A taste of Rust". Archived from the original on April 26, 2013. Retrieved April 25, 2013.
  55. ^ "Races - The Rustonomicon". doc.rust-lang.org. Archived from the original on July 10, 2017. Retrieved July 3, 2017.
  56. ^ "The Rust Language FAQ". static.rust-lang.org. 2015. Archived from the original on April 20, 2015. Retrieved April 24, 2017.
  57. ^ "RAII – Rust By Example". doc.rust-lang.org. Archived from the original on April 21, 2019. Retrieved November 22, 2020.
  58. ^ "Abstraction without overhead: traits in Rust". Rust Blog.
  59. ^ Klabnik, Steve; Nichols, Carol (June 2018). "Chapter 4: Understanding Ownership". The Rust Programming Language. San Francisco, California: No Starch Press. p. 44. ISBN 978-1-593-27828-1. Archived from the original on May 3, 2019. Retrieved May 14, 2019.
  60. ^ "The Rust Programming Language: What is Ownership". Rust-lang.org. Archived from the original on May 19, 2019. Retrieved May 14, 2019.
  61. ^ Walton, Patrick (October 1, 2010). "Rust Features I: Type Inference". Archived from the original on July 8, 2011. Retrieved January 21, 2011.
  62. ^ rust-lang/rustup, The Rust Programming Language, May 17, 2021, retrieved May 17, 2021
  63. ^ "Why Cargo Exists". The Cargo Book. Retrieved May 18, 2021.
  64. ^ "Specifying Dependencies - The Cargo Book". doc.rust-lang.org. Retrieved May 17, 2021.
  65. ^ "rust-dev-tools/fmt-rfcs". GitHub. Retrieved September 21, 2021.
  66. ^ "rustfmt". GitHub. Retrieved May 19, 2021.
  67. ^ "Create README.md · rust-lang/rust-clippy@507dc2b". GitHub. Retrieved November 22, 2021.
  68. ^ "Day 1 - cargo subcommands | 24 days of Rust". zsiciarz.github.io. Retrieved November 22, 2021.
  69. ^ "rust-lang/rust-clippy". GitHub. Retrieved May 21, 2021.
  70. ^ "ALL the Clippy Lints". Retrieved May 22, 2021.
  71. ^ "rust-lang/rls". GitHub. Retrieved May 26, 2021.
  72. ^ "racer-rust/racer". GitHub. Retrieved May 26, 2021.
  73. ^ "Procedural Macros". The Rust Programming Language Reference. Archived from the original on November 7, 2020. Retrieved March 23, 2021.
  74. ^ "Serde Derive". Serde Derive documentation. Archived from the original on April 17, 2021. Retrieved March 23, 2021.
  75. ^ "extendr_api - Rust". Extendr Api Documentation. Retrieved March 23, 2021.
  76. ^ Walton, Patrick (December 5, 2010). "C++ Design Goals in the Context of Rust". Archived from the original on December 9, 2010. Retrieved January 21, 2011.
  77. ^ "How Fast Is Rust?". The Rust Programming Language FAQ. Archived from the original on October 28, 2020. Retrieved April 11, 2019.
  78. ^ "Getting Started". rust-lang.org. Archived from the original on November 1, 2020. Retrieved October 11, 2020.
  79. ^ "Stack Overflow Developer Survey 2015". Stackoverflow.com. Archived from the original on December 31, 2016. Retrieved November 3, 2016.
  80. ^ "Stack Overflow Developer Survey 2019". Stack Overflow. Archived from the original on October 8, 2020. Retrieved March 31, 2021.
  81. ^ "Stack Overflow Developer Survey 2021". Stack Overflow. Retrieved August 24, 2021.
  82. ^ Yegulalp, Serdar (April 3, 2015). "Mozilla's Rust-based Servo browser engine inches forward". InfoWorld. Archived from the original on March 16, 2016. Retrieved March 15, 2016.
  83. ^ Lardinois, Frederic (April 3, 2015). "Mozilla And Samsung Team Up To Develop Servo, Mozilla's Next-Gen Browser Engine For Multicore Processors". TechCrunch. Archived from the original on September 10, 2016. Retrieved June 25, 2017.
  84. ^ Bryant, David (October 27, 2016). "A Quantum Leap for the web". Medium. Archived from the original on December 9, 2020. Retrieved October 27, 2016.
  85. ^ Yegulalp, Serdar. "Rust's Redox OS could show Linux a few new tricks". infoworld. Archived from the original on March 21, 2016. Retrieved March 21, 2016.
  86. ^ "Introduction to Theseus". Theseus OS Book. Retrieved July 11, 2021.
  87. ^ Garbutt, James (January 27, 2019). "First thoughts on Deno, the JavaScript/TypeScript run-time". 43081j.com. Archived from the original on November 7, 2020. Retrieved September 27, 2019.
  88. ^ Howarth, Jesse (February 4, 2020). "Why Discord is switching from Go to Rust". Archived from the original on June 30, 2020. Retrieved April 14, 2020.
  89. ^ Vishnevskiy, Stanislav (July 6, 2017). "How Discord Scaled Elixir to 5,000,000 Concurrent Users". Discord Blog.
  90. ^ "Google Fushcia's source code". Google Git. Retrieved July 2, 2021.
  91. ^ Nichols, Shaun (June 27, 2018). "Microsoft's next trick? Kicking things out of the cloud to Azure IoT Edge". The Register. Archived from the original on September 27, 2019. Retrieved September 27, 2019.
  92. ^ Balbaert, Ivo (May 27, 2015). Rust Essentials. Packt Publishing. p. 6. ISBN 978-1785285769. Retrieved March 21, 2016.
  93. ^ Frank, Denis (December 5, 2013). "Using HyperLogLog to Detect Malware Faster Than Ever". OpenDNS Security Labs. Archived from the original on August 14, 2017. Retrieved March 19, 2016.
  94. ^ Denis, Frank (October 4, 2013). "ZeroMQ: Helping us Block Malicious Domains in Real Time". OpenDNS Security Labs. Archived from the original on August 14, 2017. Retrieved March 19, 2016.
  95. ^ "Ruffle". Ruffle. Archived from the original on January 26, 2021. Retrieved April 14, 2021.
  96. ^ Sei, Mark (October 10, 2018). "Fedora 29 new features: Startis now officially in Fedora". Marksei, Weekly sysadmin pills. Archived from the original on April 13, 2019. Retrieved May 13, 2019.
  97. ^ "RHEL 8: Chapter 8. Managing layered local storage with Stratis". October 10, 2018. Archived from the original on April 13, 2019. Retrieved April 13, 2019.
  98. ^ terminusdb/terminusdb-store, TerminusDB, December 14, 2020, archived from the original on December 15, 2020, retrieved December 14, 2020
  99. ^ 9 Companies That Use Rust in Production, Serokell, November 18, 2020, retrieved October 7, 2021
  100. ^ Krill, Paul. "Rust language moves to independent foundation". InfoWorld. Archived from the original on April 10, 2021. Retrieved April 10, 2021.
  101. ^ Vaughan-Nichols, Steven J. (April 9, 2021). "AWS's Shane Miller to head the newly created Rust Foundation". ZDNet. Archived from the original on April 10, 2021. Retrieved April 10, 2021.
  102. ^ Vaughan-Nichols, Steven J. (November 17, 2021). "Rust Foundation appoints Rebecca Rumbul as executive director". ZDNet. Retrieved November 18, 2021.
  103. ^ "The Rust programming language now has its own independent foundation". TechRepublic. February 10, 2021. Retrieved November 18, 2021.
  104. ^ "RustConf 2020 - Thursday, August 20". rustconf.com. Archived from the original on August 25, 2019. Retrieved August 25, 2019.
  105. ^ Rust Belt Rust. Dayton, Ohio. October 18, 2019. Archived from the original on May 14, 2019. Retrieved May 14, 2019.
  106. ^ RustFest. Barcelona, Spain: asquera Event UG. 2019. Archived from the original on April 24, 2019. Retrieved May 14, 2019.
  107. ^ "Oxidize Global". Oxidize Berlin Conference. Retrieved February 1, 2021.

External links