Running Rust in Production
https://d-cube.connpass.com/event/90317/
ライブ動画変換でのRust言語活用事例
発表者:どようびさん from pixiv
(茂木さん)
- pixiv sketch live
- web RTCをつかってる
- H.264のトランスコーダーをRustで
- Rustのねじ込み方
- は別の方に
- 採用の経緯
- ネイティブライブラリが必須だった
- C言語をそのまま呼び出したい
- C++ vs Go vs Rust
- Goはポインタの扱いで厳しかった
- Rustにはbindgenがある
- よかったところ
- valgrindのようなCのエコシステムがそのまま使える
- はまったところ
- ポインタで無効なアドレスががが
- Cの関数マクロが呼べない
- 学習コストは高い
Rust本番投入を諦めるためのガイド
発表者:KOBA789さん from クックパッド
- JavaScript 13年
- なぜ使いたいのか?
- 趣味
- なぜ使えたのか?
- Hako 自動デプロイ機能
- 採用の難しさ
- 新しいが故の難しさ
- 真似でごまかせない
- Ruby vs Rust
- クラッシュからのコアダンプ読み
- CPUやOSが隠蔽されない
- 運用上必要な機能を整理
- ロギング
- fluentdと組み合わせて自作
- エラーハンドリング
- エラーのバブリングが欲しい
- ロギング
- デファクタスタンダードがない
- スレッドとイベントループの使い分け
- コンピュータ・サイエンスの知識が必須
- graceful shutdown?
ポイントで導入するRust
発表者:Tommyさん from fablic -> rakuten
- Rustを選んだ理由
- 新しい言語を学びたかった
- 趣味で2chまとめを作った
- nickel, diesel, hyper, mocktio
- 導入のきっかけ
- Rakuma
- Herokuで毎回 ruby のbundle installしていた
- rustはわからん from 他の人
- と思ったらチームからPRがきた!
- Rust Test tips
- DBを使うテストは、--test-threads=1が必須かも
- 文字列操作に見るRubyとRustの比較
Rustを使ったデータパイプライン
発表者:Pyry Kontioさん from リクルートコミュニケーションズ
- EVTL用ツール decchi
- DBのデータをS3に移行したり、とってきたり
- AWS lambdaを使っている(musl)
- pythonでラッピングして、rustかけない人に対応
- プラグイン機構を持っている
- なぜRust?
- pythonは型システムなくて辛い
- つらい
- コンパイル遅い
- 周りに開発者がいない
- いいところ
- 安定性、パフォーマンス
- 適した使い方をすれば最高の言語
- でも押し売りは
そのサーバー、三日前からRustだよ
発表者: 原 将己 (@qnighy)さん from wantedly
- なぜRustをつかのか?
- 学んだことを活かしたい
- マイクロサービスの住み分けができているGoが強い
- refine-imageサービスがC++
- ロストテクノロジー
- Rustに移植したい
- C++エンジニアがおおいわけではないからRustに移行しても怒られない
- 明日からRustになる(3日前は。。。)
- 退路を確保して、Rustに移行したのがよかった
- actix-web
- バックはhyperじゃない
- unsafeが多い
Rustと3種のDSL
発表者:κeen (@blackenedgold)さん from Idein
- DSL
- 内部DSL
- 外部DSL
- DSLの使いどころ
- ビジネスロジックなど
- Actcast
- IoTデバイスの管理
- Swagger(Open API)を使っている
- アクセス権限チェック
- モデリング
- Traitをうまく使う
- 演算子オーバーロードは悪用しない
- 諸刃の剣のマクロDSL
- 第一級でないので扱いづらい
- みぞの鏡の外部DSL
- 外部DSL
- 最後の手段
- OpenAPIのRust対応が望まれる
- いくらかあるが、まだ不便っぽい