FORCIA CUBEフォルシアの情報を多面的に発信するブログ

Shinjuku.rs #8を開催しました

2020.02.04

Shinjuku.rs Rust エンジニア

プロダクト部の松本です。フォルシアではShinjuku.rsというRustのLT会を隔月開催しています。
今回、8度目となるShinjuku.rs #8を1/21(火)に開催し、多くの方々にご参加いただきました。

前回の様子はこちらをご覧ください。
Shinjuku.rs#7を開催しました

LTの様子

Bayard - Developing Full Text Search Server in Rust | Minoru Osukaさん

pic_1.jpg

Rustで書かれた全文検索エンジンサーバのBayard(バヤール)について解説していただきました。

Kubernetesにデプロイしやすい小さな全文検索エンジンサーバで、実行可能な単一のバイナリファイルが13MBしかないことが大きな特徴です。

アーキテクチャはApache Zookeeperに近い、1つのクラスタをLeaderとFollowerで構築される3ノード以上で構成する構成をとり、ノード間はgRPCで通信し、Raft Consensus Algorithmでクラスタとしての一貫性を保つ仕組みだそうです。検索ライブラリはTantivyを使っています。

anyhowの簡単な使い方 | dalanceさん

pic_2.jpg

アプリケーション用のエラーライブラリとして、次世代のデファクトスタンダードになりそうなAnyhowを紹介いただきました。
現行デファクトのfailureと違い、標準ライブラリのErrorトレイトを実装しており、cargoの実装にも使われているところが大きな特徴です。

        fn main() -> Result<(), anyhow::Error> {
            let content = std::fs::read("Cargo.toml")?;
            let content = String::from_utf8(content)?;
            let value = content.parse::()?;
            dbg!(value);
            Ok(())
        }

スライドの9ページで紹介されているコードですが、2,3,4行目が返しうるError型は全て異なり、それぞれのいずれかという新しいError型を実装するのは手間がかかります。anyhowを使うことで自動で変換してくれ、楽に実装することができます。

actix-webの動向 | matsu7874

pic_3.jpg

この日はちょうど、actix-webの開発者がリポジトリを削除し、今後の開発はどうなっていくのだろうとなっていたところに、次のプロジェクトリーダーが決まったというニュースがありました。コミュニティのニュースとして、経緯と今後のリーダーについて紹介しました。

ブロックチェーンにおけるRust | さてさん

pic_4.jpg

ブロックチェーンを書くためのフレームワークであるSubstrateとそれを使ってご自身で実装されているPlasmというブロックチェーンをご紹介いただきました。
ネイティブバイナリとWasmへのコンパイルが同じコードから行え、wasmファイルも小さいところがRustで開発する魅力だそうです。

ブロックチェーンはコンピュータサイエンスの総合格闘技なので、実装していてとても勉強になるとのことでした。

懇親会

今回もピザを片手に懇親会を行いました。多くの方にご参加いただきました。

pic_5.jpg

次回、Shinjuku.rs #9は03/24(火)に開催予定

既に次回Shinjuku.rs #9の募集を始めています。ご興味を持っていただけた方は下記connpassページから参加登録をお願いいたします。

RustのLT会 Shinjuku.rs #9 @FORCIA

Rustを商用利用した話、Rustでこんなものを開発したぜ、Rustの面白い仕様を紹介したい、Rustにcontributeしたなど、Rustに関連する内容ならなんでもWelcomeです。皆様からのLTをお待ちしています。

この記事を書いた人

松本 健太郎

フォルシア4年目のソフトウェアエンジニア。
Rustでインメモリデータベースの開発を行っている。