SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
RustとWasmの現実

株式会社アトラエ タガミショウゴ

Rust, Wasmって最近巷でよく聞きませんか?

- “Rustが流行っているらしい”

- “Rustは早いらしい”

- “WebAssemblyってのがJavaScriptの代わりになるらしい”

でも、実際のところどうなのか?またそれぞれどういったものなのか?を完全に理解して
いる方は少ない印象(かくいう僕もよく分かっていませんでした)。



なので、ざっと理解できるレベルまで今日はお話ししていきます。

RustとWasmの現実

Rustとは

- FirefoxのMozilla社が開発元

- 特徴:

- (1) 実行速度が速い(C, C++と同じくらい) 

- (2) 低レイヤーのプログラムから、Webまで幅広くカバーできる 

- (3) 「安全性」が担保されている 

- (4) ツール群が充実している 

Rustは速いの図

https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html
Rustはなぜ早いのか?

- JavaやPythonなどの言語はインタプリタやコンパイラを介して、独自の仮想マシン
用の言語を生成するので、ちょっと時間がかかります(それでも早い

- 一方、C, C++, Rustはコンパイル後の最終結果は直接機械語になります

- また、仮想マシンを持たないGoよりも早いのは、Rustにはガベージコレクション(GC)
がないという理由からです

- GCとは使う予定のないメモリ領域(ガベージ)を解放し、使えるメモリ領域を増やす、
という処理をしてくれるやつです

- Rustは手動でメモリ管理をするのではなく、「所有権」「借用」「ライフタイム」という新
しい仕組みでこれを回避

ちなみに、Rustのコードはこんな感じ

https://news.mynavi.jp/article/rust-13/
Rustのプロダクション使用例

- Firefoxのブラウザエンジンのコア部分(ここが起源)

- Dropboxではデータセンター効率化のためのストレージシステム

- yelpのリアルタイムA/Bテストフレームワーク

- FastlyのWebAssembly実行環境を提供するLucet

- AWS Lambdaの仮想化システム

- Cookpadのマイクロサービスの一部分

- サイバーエージェントの広告配信サーバー

RustとWasmの現実

WebAssemblyとは

- WebAssembly(略してWasm)はブラウザで動く新しいプログラミング言語(フォーマッ
ト?)

- ネイティブコードに変換しやすく、バイナリ列で表現されており、早い

https://ja.wikipedia.org/wiki/WebAssembly
WebAssemblyのユースケース

- 前提:JavaScriptを全く置き換えるというものではない(現状は)

- 例えば、処理速度が求められる部分やC/C++からの移管先

- C/C++で書かれたアプリゲームを、Webゲームに移管する時の方法 

- 画像、動画編集、画像認識などのアプリケーションをWeb上で実行する 

- 現状、WasmはDOMを直接触れない関係で、JavaScriptといい感じに共存している

- イメージとしては、基本的にはJavaScriptで書き、処理速度が求められる部分を
WebAssemblyで書くみたいなのが良さそう

まとめ

- RustやWebAssemblyはこれから2,3年で使用例が増えてくると思うけど、すぐすぐ
「アトラエでも使うぜ!」という段階ではない!

- 有りうるとすると、DSチームやインフラ周りで計算機構の高速化あたりをPythonか
らRustにする、とか

- いずれにせよ、新しいプログラミング言語を学ぶのは楽しい!


Weitere ähnliche Inhalte

Was ist angesagt?

Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
 

Was ist angesagt? (20)

Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
失敗事例で学ぶ負荷試験
失敗事例で学ぶ負荷試験失敗事例で学ぶ負荷試験
失敗事例で学ぶ負荷試験
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
AWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすかAWS Batch Fargate対応は何をもたらすか
AWS Batch Fargate対応は何をもたらすか
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 

Ähnlich wie Rust と Wasmの現実

[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
Funada Yasunobu
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
Funada Yasunobu
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
Yuki KAN
 

Ähnlich wie Rust と Wasmの現実 (8)

Rust + web assemblyやってみた
Rust + web assemblyやってみたRust + web assemblyやってみた
Rust + web assemblyやってみた
 
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
 
Exaリーディングのすゝめ
ExaリーディングのすゝめExaリーディングのすゝめ
Exaリーディングのすゝめ
 
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
 
RVM with Server Environment
RVM with Server EnvironmentRVM with Server Environment
RVM with Server Environment
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
 

Rust と Wasmの現実