- 2018/07/03
- https://d-cube.connpass.com/event/90317/
ライブ動画変換でのRust言語活用事例
- saturday06(@saturday06)
- 茂木勇さん
- pixiv
- http://docs.google.com/presentation/d/1yWGoQEgm_qVxTfxFZo7-mhCYrXVhTM5pEltxY2O-NpQ
導入事例
- pixiv Sketch LIVE
- Sketchの操作を配信できる?
なぜrust
- Cのライブラリに依存すると事前に分かっていた
- ネイティブライブラリの関数を呼び出したい
- ネイティブライブラリの呼び出し定義コードを自分で書きたくない
- ネイティブライブラリからデータを直接受け取りたい
C++
- 社内ですでにメンテつらい
Go
- Cとのやりとり大変そう
Rust
難しかったとこ
- 所有権とかライフタイムとか学習コスト高い
- moveされうる変数のポインタ
Rust本番投入をあきらめるためのガイドライン
- 小林秀和(@KOBA789)
- クックパッド
本番投入のハードル
- rust特有の難しさ
- メモリに直接さわるのに慣れてるか
- 新しいが故の難しさ
- 真似でごまかせない
真似でごまかせないならどうする
基礎原理に従ってやる
- ノウハウのある言語との比較
- ランタイムなしで動くとはどういうことか
- 実行時にCPUやOSを隠蔽しない
- スクリプト言語の経験しかないとハードルになり得る
運用上必要な機能を整理する
- クックパッドの事例の場合
- ロギング
- エラーハンドリングとトレーサビリティ
- graceful shutdown
- シグナルのハンドリング
まとめ
- コンピュータサイエンスのデファクトが活用できる
- 低レイヤーを自前でめちゃくちゃ頑張ってる
- VMあった方がいいな・・
つぶやき
- そういえば Node.js よりはエラーハンドリングしやすくて安全に I/O の多重化ができる言語として俺は選んだな
ポイントで導入するRust
- tommy(@tooooooooomy)
- Fablic -> 楽天
- ラクマ
- https://speakerdeck.com/kazu9su/pointodedao-ru-sururust
なぜRustを勉強したか
- 毎年一つの言語を
- goはこの先使うこともありそうだしrustを
Rust導入のきっかけ
- ラクマで自動化を進めようとしていた
- そこで使った
運用後
- みんなrustわからないから不具合で困った
- みんなもrust学んでくれた
Rustを使ったデータパイプライン
- Pyry Kontio(@GolDDranks)
- リクルートコミュニケーションズ
データパイプライン
なぜrust
- 速いから
- 厳しい型システムで安心
- メモリのコントロール
つらかったとこ
Rustが適した分野
- 安定性
- 速さ
そのサーバー、三日前からRustだよ
- 原 将己(@qnighy)
- wantedly
- https://speakerdeck.com/qnighy/you-wont-know-its-now-rust
- https://www.slideshare.net/qnighy/you-wont-know-its-now-rust
なぜwantedlyでrust
Rustと3種のDSL
- κeen(@blackenedgold)
- Idein inc.
- https://keens.github.io/slide/rustto3tanenodsl/
DSL
- ドメイン特化言語
- 自分のときたい問題に合わせてミニ言語を作る