エンジニアの松本です。
Rustのチュートリアルは終えたものの実際使ってみると「Rust、何もわからない…」と感じる中級者向けのLT会『Rust、何もわからない…#13』を開催いたしました。今回も事業のなかで使っているからこそのトークテーマでお話しいただき、非常に楽しいイベントになりました。
今回は株式会社FinatextのTaikiさん(@taiki45)とIdein株式会社のガラスボーさん(@garasubo)、estieの松本(@matsu7874)に登壇いただきました。
発表いただいた内容を紹介いたします。
OpenAPIからのRustコード生成
estieの松本がOpenAPI Generatorを用いたRustクライアントコードの生成についてお話ししました。 OpenAPI Generatorを用いることで、OpenAPI仕様書から簡単にRustのクライアントコードを生成できます。 anyOf
には対応していないなど、完璧ではない部分もありますが、既に実務で使えています。
Error Handling in Rust Applications
株式会社FinatextのTaikiさんからRustアプリケーションにおけるエラーハンドリングについてお話しいただきました。anyhowとthiserrorというクレートを用いたエラーハンドリングの実践的な方法を紹介いただきました。また、aws-lambda-runtimeをv0.12にアップグレードした際に出会ったエラーとその解決策についても共有いただきました。
実務で使えるTipsがたくさん乗った資料ですので、イベントを見逃した方は一度目を通すことをおすすめします。
Cancel Safetyとスレッドリーク
Idein株式会社のガラスボーさんからは、Rustの非同期処理におけるCancel Safetyとスレッドリークについてお話しいただきました。tokio::select
を用いると複数の非同期処理のうち早いものを採用できますが、選択されなかった処理はキャンセルされるため、途中で終了しても問題ない処理だけを呼び出すべきとのことでした。また、await
と絡んで発生した具体的な事例をお話しいただきました。
RustでもCancel Safetyはコンパイラが面倒を見てくれないため、プログラマーが気をつける必要がありますが、経験しないと思いつきにくい貴重なお話でした。
次回について
次回は9月ころの開催を予定しています。
estie - connpassでお知らせしますのでグループのメンバーになってお待ち下さい。
またestieではRustでWebアプリケーションを開発するソフトウェアエンジニアを募集しています。カジュアル面談で気軽にご質問いただけますので、ご興味のある方は下記URLからご連絡ください。