LoginSignup
96
70

More than 5 years have passed since last update.

rustの本番での採用事例リンク集

Last updated at Posted at 2019-03-30

rust(プログラミング言語) の本番での採用事例についてのリンクをまとめてみました。
rust を本番で採用する際の判断材料のひとつになると嬉しいです。

まったく網羅的なものではなく、僕の印象に残ってたやつの紹介です。
編集リクエストもお待ちしてます。

Production - Rust programming language

実はrustの公式サイトには、本番での採用事例を紹介するページがあります。
公式のドキュメントがとてもわかりやすく、あのオンラインドキュメントだけ読めば入門できることで有名なrust、こういう情報も公式が見やすくまとめてくれてるんですね.

  • npmjs.com
    • Rust npm Whitepaper
    • npmパッケージのpublish処理がCPUバウンドになり、トラフィックが大規模になるにつれパフォーマンスの問題がでてきた。
    • rust で書き直して解決。
    • c/c++/java/go と rust を比較したことが書かれている。
      • java → jvm 運用は彼らにとって複雑なので避けた
      • go → 依存ライブラリ解決の信頼性が彼らの要件からすると不安があった
      • c++ → c++でHTTPアプリを書くのは避けた
    • 上記の話から、おそらくCPUバウンドなところだけrust、というわけでなく httpサーバ自体も rust で書かれていると思われる。
    • 上記文書では、rust の 性能だけでなく dependency management を褒めている。
  • Dropbox
    • https://www.wired.com/2016/03/epic-story-dropboxs-exodus-amazon-cloud-empire/
    • Dropbox が AWS から自社のハードウェアへ移行したことの紹介記事です。rust が登場します。
    • まだ2016年の段階で、Dropboxという有名大規模なシステムに rust 、ということで当時けっこう話題になっていたように思います。
    • 記事によると、Magick PocketというDropbox独自の分散ファイルストレージシステムを rust で新しく書き直したらしい。
      • → 最初はGo で書いたが、メモリフットプリントが非効率だった。より彼らの特注のハードウェアの性能をだすため rust でつくり直した。
  • その他多数。
  • rust採用企業が一望できるページがこちら

Fastly

先日アナウンスされた Fastly の 「Lucet」 を見た僕は、これは、めっちゃだな。と思いました。

fastly の Lucet は主にrustで書かれているようです。
https://github.com/fastly/lucet

近い将来、webフロントエンドの開発は、各社が好きなコンパイル型言語で書いてfastlyにデプロイ、みたいなワークフローになったりするんでしょうか。

Lucet は、WebAssembly の軽量コンパイラ/実行環境のようです。
( WebAssembly = webブラウザで走らせることができるソフトウェアの実行ファイルフォーマット。 javascript 書かずとも、好きな言語をWebAssemblyにコンパイルすればwebページをプログラムすることができる )

というか実は、元々、rust は webassemblyへのコンパイルがけっこう簡単にできます。
コンパイラツールチェイン の rustup から、色々な環境へのクロスコンパイルが簡単にできるようになってます。

webアプリケーションの領域でもrustが普及すると面白いですね。

Firefox

Firefoxを忘れるところでした。
Firefox の独自ブラウザエンジンのGeckoには、部分的 rust が使われています。

また、Mozilla には、完全にrust で書かれた WebブラウザエンジンのServoというプロジェクトがあります。

以前は Gecko を Servo に取り換えるか,という話もあったようですが,結局 Servo の成果を順次 Gecko に取り込んでいく,ということになったようで,それは Quantum プロジェクトと呼ばれています。現在も続いています。

Gecko の中の Rust コードはまだ一部分ですが,それでも CSS エンジンなどは完全に取り換えられました。
Servo の CSS エンジンについては Lin Clark さんの分かりやすい技術解説(2017 年)があります。日本語訳もあります:
超高速エンジンの内部:Quantum CSS(別名Stylo)- 前編 | POSTD
超高速エンジンの内部:Quantum CSS(別名Stylo)- 後編 | POSTD

こちらの記事も参考になります:
Firefox Quantum高速化の一翼を担うQuantum CSS - Mozilla Flux

VR 機器用のブラウザーである Firefox Reality は Gecko じゃなくて Servo だそうです。
https://mixedreality.mozilla.org/firefox-reality/

(上記、いただいたコメントの情報を元に編集しました )

AWS Lambda (Firecracker)

コメントで教えていただきました。

サーバレスコンピューティング筆頭の AWS Lambda ですが、ここで動いている 仮想化システム Firecracker は rustで書かれているそうです。

Firecracker 軽量な仮想マシンを管理することができ、公式には「microVM」という言葉が遣われています。
公式の紹介によると、mircoVMは、コンテナでもVMでもなく、起動の高速性と、同時にマシンリソース消費の隔離を両立できるものらしい。

日本

追記: 日本で Rust を利用している会社一覧 というリポジトリに情報がまとまっていました。

編集中

まとめようとしてみたものの、思ったより数がすくなかったです。
ちょっとずつ追記していくと思います。

「おれも本番で使ってるよ! :raising_hand: 」という方がいたら教えてくださいっ

96
70
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
96
70