16
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rust Tokyo 2024 参加してきた! ~面白かった部分などまとめ~

Last updated at Posted at 2024-12-01

はじめに

こんにちは。細々とプログラミングをしているsotanengelです。

Rust Tokyo 2024現地で参加してきました〜〜〜!!!!!
image.png

プログラミング歴は5年くらいなのですが、こういった現地イベントに参加したことは初めてだったので、とても新鮮な経験ができました!

そこで今年参加できなかった人向けに「どんな感じの発表だったのか」の私的なメモをこの記事にまとめます。

発表メモ

Rust で TUI アプリケーションを作った話

  • jqフィルターの話
  • ratatuiは最優先で使われるライブラリ。上記のライブラリを裏で持ちつつ、リッチなグラフィックを作成できる
  • uiコンポーネントはそれぞれ組み合わせることで追加が容易になりそう
  • 無いので作ったjqリポジトリ
  • rustc -Lとかで依存してるライブラリとか探せる
  • rustc -Lとかでライブラリとか探せる
  • cargo-dist でbrewとかにリリースできる!(リポジトリ)

新卒2年目が挑んだ!! RustとOSS、実は怖くない話

  • 挑戦したossはasync-graphqlとzed
  • いきなりgood first issueやろうとすると、文脈とか今までの流れを掴む必要があって大変なこともあるよ
  • ⇧なので普段自分が作っているツールの問題にチャレンジするとかでもいいかも
  • 新卒2年目だがめっちゃプログラミングは経験者だつおい・・・・

Rust と歩んだ 7 年間:プロダクションコードのための実践的テスト

  • dbのカラム変化でテストケースなどが壊れやすいよー
  • 対応
    • sqlファイルを準備:カラムの修正の際に個々のファイルを修正しないとダメ
    • ある関数で呼び出し:呼び出し側の対応が多いカラムの修正の際に全部修正しないとダメだよね
    • 🔴テーブルと同じ構造を持つ構造体を作成する
      • ビルダーを作って対応することで最小限の変更で抑えられるよー
  • 外部apiはレートリミットとかapi側のエラーの切り分けがむずい
  • crate Mokitoでサーバーを建てるのが良さげ
  • SNSのAPIは仕様変更が急に行われることがあるため、異常な例だけ退避して分析するとかの対応も必要かもね

Fairy DevicesがRustを採用して5年が経ちました

  • c++のリソース少なかったので性能もいいRustを採用
  • 音声処理は非同期処理が発生する
  • Rustを使い始めてからコンパイル後に辛いことは無くなったかも
  • 少しずつリプレイス
  • axum、sqlx、tracing、anyhowが現環境では有名でserdeに関してはずっと現役スゴイ
  • テストカバレッジ(参考)で網羅性を担保してる

総会員数1,500万人のレストランWeb予約サービスにおけるRustの活用

  • バックエンドトラフィックは1000req/sec
  • webバックエンド、エッジコンピューティング、全文検索エンジン、社内連絡用api、フレームはaxumで、Pythonとかc#に移行している
  • サービス全体で使用する言語を分散することでリスクヘッジを行なっている
  • cargo workspaceでリポジトリをモジュラーにする
  • utoipaでAPIドキュメント記載
  • axumのextractorに定義する
  • cpuバウンドはrayonに委託する
    • https://ryhl.io/blog/async-what-is-blocking/
    • エッジコンピューティングではfastlyを利用しており、パーソナライズじゃないページや会員ランクに応じたコンテンツキャッシュ
    • エッジでwasmを実行している

さいごに

めっちゃ最高の会でした!
「実際にRustが活用されている事例」や「技術の最先端」みたいなものに触れる機会はモチベーションのアップにかなり繋がることをひしひしと感じました。

今回の回で特に印象的だったのは(ちょっとどなたの発表か忘れてしまったのですが・・・)

社内でRustを内製するだけではRustの技術がニッチなものになってしまうので、
このような場で知見を共有してコミュニティの発展に〜〜〜〜

という趣旨のコメントをしていた企業さんがあったことでした。
確かにPythonやJavaだって最初は使っている人は少なかったものの、知見を持った人が増えてそれを共有する場があって、徐々に浸透するフェーズがあったはずで、
ちょうど自分たちはRustの浸透期を目の当たりにしているのではないかなと思いました。

私も少しでも共有できるものは共有して、Rustというコミュニティを盛り上げていける一員になれればいいな。

さいごに、Rust Tokyoの運営の皆様、ならびに発表者の皆様
素敵な機会をいただきありがとうございました!!!!

(参考)発表内容とスライド

発表者(敬称略) 発表内容
名和雅実 大規模プロダクトのための Cargo Workspace ベストプラクティス
ynqa Rust で TUI アプリケーションを作った話
tomoikey 新卒2年目が挑んだ!! RustとOSS、実は怖くない話
yuki-uchida Rustでマルチスレッドプログラミング! リアルタイム通信ではどのようにスレッドを立てるのか
紫関 麗王 (GMOペパボ株式会社) proc_macroによる錆びつかない実装
青柳 康平 (ユニークビジョン株式会社) Rust と歩んだ 7 年間:プロダクションコードのための実践的テスト
Fairy Devices株式会社 (Fairy Devices株式会社) Fairy DevicesがRustを採用して5年が経ちました
Sergi Granell (株式会社アークエッジ・スペース) VDESターボエンコーダ/デコーダの実装を通じてRustを学ぶ
Motoyuki Kimura Instrumenting Async Runtime
ahogappa Rustを使ったRubyライブラリの開発
Haruki Shimada カードバックエンドの結合テストを並列処理に移行した話
keno (Ken Okada) smithay で作って動かす Wayland compositor
Satoshi Yoshikawa ONNX推論ランタイムクレートの比較と実装奮闘記
David Lu Overcoming Callback Hell When Integrating C into Rust
山本 浩平 (株式会社一休) 総会員数1,500万人のレストランWeb予約サービスにおけるRustの活用
Takuya Moriyama (AGC株式会社) Rustを使った社内用Webアプリの開発・運用を持続させるために、素材メーカーが学んだこと
日熊 悠太 (株式会社KICONIA WORKS) 動画像処理アプリをRust化してiPhoneSE上で240fpsで動かす
Vitaly Bragilevsky (JetBrains) Rust 開発を支えるツール – RustRover で日々の作業を効率化
Shriram Balaji Rust Unlinked - a Journey Through rustc, Linkers, Symbols, and Static Libraries
Satoru Nishio 日本全国・都市3D化プロジェクト「PLATEAU」とデータ変換OSS「PLATEAU GIS Converter」の公開
16
1
0

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
16
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?