Shinjuku.rs #8を開催しました
プロダクト部の松本です。フォルシアではShinjuku.rsというRustのLT会を隔月開催しています。
今回、8度目となるShinjuku.rs #8を1/21(火)に開催し、多くの方々にご参加いただきました。
前回の様子はこちらをご覧ください。
Shinjuku.rs#7を開催しました
LTの様子
Bayard - Developing Full Text Search Server in Rust | Minoru Osukaさん
Rustで書かれた全文検索エンジンサーバのBayard(バヤール)について解説していただきました。
Kubernetesにデプロイしやすい小さな全文検索エンジンサーバで、実行可能な単一のバイナリファイルが13MBしかないことが大きな特徴です。
アーキテクチャはApache Zookeeperに近い、1つのクラスタをLeaderとFollowerで構築される3ノード以上で構成する構成をとり、ノード間はgRPCで通信し、Raft Consensus Algorithmでクラスタとしての一貫性を保つ仕組みだそうです。検索ライブラリはTantivyを使っています。
anyhowの簡単な使い方 | dalanceさん
アプリケーション用のエラーライブラリとして、次世代のデファクトスタンダードになりそうな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
この日はちょうど、actix-webの開発者がリポジトリを削除し、今後の開発はどうなっていくのだろうとなっていたところに、次のプロジェクトリーダーが決まったというニュースがありました。コミュニティのニュースとして、経緯と今後のリーダーについて紹介しました。
ブロックチェーンにおけるRust | さてさん
ブロックチェーンを書くためのフレームワークであるSubstrateとそれを使ってご自身で実装されているPlasmというブロックチェーンをご紹介いただきました。
ネイティブバイナリとWasmへのコンパイルが同じコードから行え、wasmファイルも小さいところがRustで開発する魅力だそうです。
ブロックチェーンはコンピュータサイエンスの総合格闘技なので、実装していてとても勉強になるとのことでした。
懇親会
今回もピザを片手に懇親会を行いました。多くの方にご参加いただきました。
次回、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でインメモリデータベースの開発を行っている。



