Rust LT Onlineの参加レポート

更新日時: July 31, 2020

はじめに

PHPとJavaScriptを触ってきて3年が経ち、そろそろ他の言語も学ぼうと思っていました。
最近、音声テキストチャットアプリケーションの Discord が実装言語を Go から Rust へ変えたニュースを見かけたり、デバイスの低レベルの制御を行うときに Rust の名前が上がってきたりしていたので興味を持っていました。



しかし、自分は Rust に関する知識がほぼゼロだったこともあり、いきなり本格的な Rust の勉強会に参加することはハードルが高かったです。

そんな中、今週の月曜日に Rust に関することであれば何でも発表してもいいオンラインLTが開かれていたので知識ゼロでも得られるものはあると思い、参加してみました。



イベント概要

当イベント、 Rust に関することであれば何でもLTをして良いというイベントです。

LTテーマはRustに関連すればなんでもOKです! (初心者縛りなどではないです。)

開催されるまで発表タイトルが公開されなかったので、どんな内容が聞けるのかを楽しみにしていました。


LT

今回のLTは以下の内容を扱った会となりました。

  • Rust トレイトの紹介
  • Introduction of Plotters
  • RustでAPI連携する社内ツール作ってみました

Rust トレイトの紹介


Rust には Class がなく、 trait という単位(正確には trait object)でポリモーフィズムを実現できます。
PHPにも trait というキーワードがあったため、個人的には親和性のある話題のLTでした。

LTではじめて知ったこととしては以下のことがありました。

  • Rust自体で提供しているスタンダードなtraitがある
    • 名前、定義、戻り値で構成されている
  • traitのパフィーマンスを考慮して、エラーが発生した場合、最大1回だけ処理するものもある
  • 継承(Derive)できるトレイトが存在する

trait に関して知らない人にもわかりやすく、その使いどころに関して説明をしていただきました。

Introduction of Plotters


Rust で使えるライブラリ(Plotter)について紹介をしていただきました。
データを可視化するときに使えるライブラリで、出力方法にWebAssemblyも対応しているものです。

Plotter を使えば、シンプルなチャートを書き出すことも簡単にできるみたいで、サンプルコードをもとに実装方法を説明いただきました。

スライド3枚目のサンプルコードを以下の実装していたとのことです。

  1. 出力形式の定義
  2. チャートの定義
  3. チャートの出力

他にも、「画像検出のライブラリと併用する時の例」や「図形の書き出し」のサンプルコードについても簡単に説明していただき、 Rust を活用した実装のイメージがなんとなく分かりました。

RustでAPI連携する社内ツール作ってみました


座学で Rust を学びながら、現場で活用するものを自分で組んだ方の話でした。
Slackのスラッシュコマンドで勤怠の打刻をするツールを作成した経験をもとにできあがったもののアーキテクチャ図を見せながら発表していただきました。

実装時に Rust 以外の opensslgcc のエラーで苦労したり、 JWT のトークンを扱っていたりした話からツールを作る中で周辺技術の勉強にもなった話が聞けました。

他には Serde という Rust のデータ構造を効率的に扱うためのフレームワークを使っていた話からLTが盛り上がり、人気のあるツールだと感じました。


ちなみに、ソースコードが気になる方は以下のリポジトリから確認ができます。



最後に

Rust に関する知識がほぼゼロな状態でLTの勉強会へ参加してみました。

事前知識がない状態でも他の言語にある概念が Rust にもあり、比較しながら聞くことができました。
他にも ベクター という概念を Rust ではよく扱っているみたいで、勉強でつまづいたときのキーワードとして検索できるものが増えました。

また、LTの中で今回のイベントを主催したコミュニティのSlackにて、初心者チャンネルで聞きながら勉強したという話に興味を持ち、さっそく自分もコミュニティに入ってみました。
気になる方は以下の Rust グループページからSlackに登録してみてください。


コメントする