2022-01-01から1年間の記事一覧

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 が強制する必…