hyper - Rustのhttp clienet / reqwestとどちらを選ぶ?

hyperはrustのlow levelなhttpライブラリだ。他の有名なhttp clientはhyperをベースにしてるケースが多い。 hyperは設計から非同期であり、client side server side APIの両方を提供する。もし、より便利なHTTPクライアントが欲しいのであれば、reqwestをチ…

regressionとは?

ソフトウェアにおけるregressionとは、ソフトウェアのバグの一種で、それまで動作していた機能が動作しなくなることです。これは、ソフトウェアのソースコードに新機能の追加やバグ修正などの変更が加えられた後に発生することがあります。 "We don't cause …

Unsafe Rustとは?

Unsafe Rustとは? 通常Rustはコンパイル時にメモリ安全性が保証される。しかし、実はRustにはメモリ安全性を保証しない第二の言語が隠れている。それがUnsafe Rustだ。 Unsafe Rustがなぜ必要か? Unsafe Rustが存在するのは、静的解析が本質的に保守的であ…

不透明 (OPAQUE) 型とは

コンピュータサイエンスにおいて、不透明 (OPAQUE) 型とは、その具体的なデータ構造がインターフェースで定義されていないデータ型のことである。このデータ型の値は、その情報にアクセスできるサブルーチンを呼び出すことによってのみ操作できるため、情報…

Genericで使われるstatic lifetimeとは

static lifetimeは、オブジェクトがどのような寿命よりも長持ちするかを定義する。 必ずしも、プログラムが終了したときにだけ削除されるとは限りません。ただ、このオブジェクトが他のどのオブジェクトよりも先にスコープ外に出ることを、Rust が強制する必…

Who コマンドを掘り下げよう

Who コマンドとは 基who コマンドでは、現在システムにログオンしているユーザーを一覧表示することができます。 $ who user1 tty2 2020-08-30 15:06 (tty2) user1 pts/1 2020-08-30 15:06 (tmux(1555).%0) user1 pts/2 2020-08-30 16:41 (tmux(1555).%6) us…