vol.5 2018.10.29
今週はあまりRustを書く機会がなかったhhatto.iconです。
Vol.5です。5回続きました。今回も興味をそそられたRustな話題を紹介します。
Rust 1.30
主な変更点
#[macro_use]がなくてもextern crate XXX;のみでマクロが使えるようになった
モジュールシステムの一部変更
Raw Identifiers
r#XXXみたいな構文
これはRust 2018で力を発揮するものになるのかな?
stableのcargoにもプログレスバー付きました
マクロ関連は日本語だと以下の記事が参考になりそうですね
crates.ioがダウン
2018/10/15にcrates.ioに障害が発生していたようで、その振り返りが公開されています 主な内容
crates.ioで作成されたユーザーcratesioが一般的な短い名前のパッケージをアップロード. そのパッケージのCargo.tomlには何も記載されておらずREADME.mdにはcrates.ioのイシュートラッカーでイシューを作成するように記載されていた. パッケージはGitHubにサーブしていた. このユーザーがDOSアタックな感じでパッケージをアップロードしたため、全てのパッケージのアップロードやヤンクが減速してしまった
問題対策としてアクセス元のIPアドレスを遮断し、そのユーザーがアップロードしたパッケージを削除した. cratesioユーザーページを404とした
今後の対策としては、アップロードのレートリミット導入、Rustチームを偽装する可能性のあるユーザー名を禁止等々
crates.ioで、いわゆるname squatting的な使われ方をしているという指摘もありますし(その辺りも上記の記事で「背景」として少し触れらていたりします)、これを機に色々と改善していくと良いですね
Frugalos
DwangoさんがRust製のミドルウェアをOSSとして公開した記事です(タイトルのまんまですが😄)
日本でプロダクション環境でこの規模でRustプロダクトが動いている例は数えるほどしかないと思いますし、OSSとして公開もされていて単純に凄いなと感心されられました😲
問題へのアプローチから実装、問題点の振り返り等色々なことが学べる記事だと思うので、是非一読をオススメします!!
sbtクライアント
ScalaのビルドツールであるsbtのクライアントとしてRustを使った実装が紹介されていました
sbtとの通信にはUnixドメインソケット使ってるみたいですね
rss
これは最近リリースされたわけではないですが、最近知って使っていたので紹介をかねて。RSSのパース、書き出しができるクレートです。以下のような形で簡単に使えます。
code:main.rs
use rss::Channel;
Rust Mesh Optimizer
Rust製のメッシュデータを効率良くレンダリングするために最適化するツールのようです🔧
もともとC++で実装されたものがあり、それをbindgenでラップしてRustでも使えるようにしています WASM関連の記事
自分の中での感覚でしかないのですが、最近RustとWASM関連の記事が増えたなーと。最近あった記事をいくつか紹介だけ。
RustでHappy Hackingをということで今回は以上です😄