vol.2 2018.09.18
少し間が空いてしまいましたが無事2回目です。
早速行ってみましょう!!
Rust 1.29
大きな変更点としてはcargo fixとcargo clippyがstableで使えるようになっています。良いですね😃
RustConf 2018で興味深かった動画
vol.1 2018.09.08でRustConf 2018の面白そうな発表を紹介してみますと言っていたので、以下ざっくりですが、紹介してみます。キーワードだけ抜き出した感じになってますので、詳細は実際の動画をみて頂ければと。 https://www.youtube.com/watch?v=d2ZQ9-4ZJmQ
Rustのベンチマーク周りについての発表です。ベンチマークまわりについて俯瞰できると思います。
micro-benchmark
cargo bench
criterion.rs
realistic-workloads
Instruments.app, perf
#[inline(always)] バイナリサイズが大きくなる
BigInt vs [u32;4]
https://www.youtube.com/watch?v=WI4ApeHH9QE
TCP/IPの匿名化規格とその実装であるTorでRustを使っているよ、という発表です。 リポジトリにはすでに2000行程度のRustファイルが存在する
Rust導入の進め方はmercurialっぽい感じ. submoduleの書き換えから使い始める
Rust 1.28 'Global Allocators'
https://www.youtube.com/watch?v=x9acx2zgx4Q
こちらもC/C++にRustを埋め込んで使う、という発表です。
CとC++のエラー処理周りでハンドリング方法が異なる(Cはエラーコードを戻す、C++は例外)ので、その辺りをどう扱うかみたいな話もありました。(libc++...)
ISUCON8をRustで攻略する
私も何度か参加したことのあるWebサービスをいい感じにスピードアップするISUCONという大会があるのですが、2018/09/15,16に8回目の予選が開かれました。 ISUCONではいくつかの言語で初期のリファレンス実装が提供されるのですが、Rustは提供されていませんでした。その中でRust使ってISUCONに挑みました、というのが上記の記事です。
actix-webやテンプレートエンジンのAskana、r2d2等を使ってパフォーマンスを意識したWebアプリケーションを構築する様子が記録されています。ISUCONに出たことがある方も出たことがない方も参考になる記事ではないでしょうか。 alacritty バージョン0.2がリリース
Rustで実装されたGPUパワーを活かして高速化したターミナルエミュレータalacrittyのバージョン0.2がリリースされました。 スクロール時のパフォーマンスがさらにアップしたようです。
さらに追加機能についても触れられているので、今後の開発も楽しみです。
firestarter
ファイルディスクリプタのハンドリングはmio、コマンド周りはclapなどを利用しつつある程度大きなアプリを書かれているので非常に参考になります。一度ソースコードを見てみると良いのではないでしょうか。 Toshi
Tantivyは前から注目していて、今回Toshiの登場でさらに興味が出てきました。
TantivyがLucene、ToshiがElasticSearchのような感じで、Toshiは開発もElasticSearchの機能を実装していくみたいです。まだまだ開発が始まったばかりですが、今後も注目していきたいです。
インストールにはCAP'N PROTOが必要なので事前にインストールしておく必要があります。以下のような形でインストールして動かし始めることができます。macOSXでの例です。 code:shell
$ brew install capnp
$ cargo build --release
$ mkdir data
$ ./target/release/toshi
PyCon JP 2018
前回のvol.1で告知させていただいた通り、PyCon JP 2018で「RustとPython」というタイトルでPython拡張モジュールをRustで書くという内容の発表させていただきました。 Rustについてはかなり端折った説明になってしまいましたが、PyO3を使った方法を紹介させていただきました。Rust自体やPython拡張モジュールに興味を持ってもらえたら幸いという感じです。 今回はこんなところでしょうか。色々と話題がありましたね。
ではまた次回✋