先日この勉強会に参加してきました。
非同期処理やオブザーバビリティ、人工衛星のファームウェアやコンパイラ、OS自作など幅広い話を聞くことができました。
低レイヤー寄りだったこともあり、Rust初心者の自分でも理解できる話が多く楽しかったです。
また、Rust界隈で活躍されている方々の雰囲気を感じ取ることができたのも良かったです。
Rust好きな人は、技術に誠実で、真面目で、ギークっぽい、古き良き勉強会文化のような技術(Rust)を愛する人が多いという印象を持ちました。
メモの断片
非同期処理の仕組み
- async/awaitがFutureトレイトに変換され、poll()メソッドで処理が実行される
- tokioなどの非同期ランタイムがwork stealing方式でタスクを管理
- ワーカーがローカルキューとグローバルキューからタスクを効率的に処理
オブザーバビリティ(監視性)
- ログ: tracingクレートで構造化ログ(JSON形式)を出力
- メトリクス: 各種クレートでパフォーマンス測定
- トレーシング: opentelemetry-rustで分散トレーシング
Rustコンパイラの内部構造
- 要求駆動コンパイル: クエリシステムで型推論や型チェックを実行
- エラーメッセージ: DiagCtxtに保存され、条件分岐が多いためバグが発生しやすい
- rust-analyzer: IDEサポートツールとして重要
人工衛星でのRust活用
- 地上管制システム: Webアプリケーションのバックエンド
- 衛星ファームウェア: 組み込みシステム
- 利点: パフォーマンス、信頼性、生産性の向上で試行錯誤を促進
OS開発でのRust
- no_std環境: OSなしで動作する組み込み開発
- メモリ管理: allocクレートでヒープ管理可能
- 課題: コードレビューできる人材が少ない、特にunsafeコードの扱い
おまけ
英語の勉強のために、ブログの英訳をつけることにしました。 Rustは特に英語圏の情報がたくさんあるので、英語も勉強していきたいと思っています。
Impressions from a Rust Study Meetup
I had the chance to listen to a wide range of talks, covering async programming, observability, satellite firmware, compilers, and even building an operating system from scratch.
Since many of the sessions focused on low-level topics, I found them accessible and enjoyable even as a Rust beginner.
I felt that Rust enthusiasts are genuine, serious about technology, and carry a geeky passion. Their love for Rust reminded me of an old-school meetup culture—where practice, personal stories, and niche passions are shared and enjoyed by everyone.
Fragmentary Notes
How async works
- async/await is transformed into the Future trait and executed via the poll() method
- Async runtimes like tokio use a work-stealing strategy to schedule tasks
- Workers process tasks efficiently from both local and global queues
Observability
- Logging: structured JSON logs with the tracing crate
- Metrics: performance measurement with various crates
- Tracing: distributed tracing with opentelemetry-rust
Rust compiler internals
- Demand-driven compilation via the query system for type inference and checking
- Error messages stored in DiagCtxt; bug-prone due to many conditionals
- rust-analyzer as an essential IDE support tool
Rust in satellite systems
- Ground control systems: backend web applications
- Satellite firmware: embedded systems
- Benefits: performance, reliability, and productivity that support rapid experimentation
Rust for OS development
- no_std environments: embedded development without an OS
- Memory management with the alloc crate
- Challenges: shortage of reviewers, especially for handling unsafe code