Rust
Rustはオンラインのドキュメントが充実しており、日本語訳もあります(同じ版ではない点には注意)。
Photo by Albert Hyseni
Version 1.55現在、LinuxなどのRustのリンカはgccのldです。
これをLLVMのlldに換えるとコンパイルが多少スピードアップします。
$ time cargo build # …
Rustの非同期処理はasync/awaitで記述できますが、非同期処理を含むクロージャでasync/awaitを適切に記述できないケースがあります。
たとえばコレクションの各要素に対して非同期処理を …
Rustのインテグレーション・テストのベターな構成は、 Integration Testing in Rust の解説が参考になります。
公式ガイドの説明どおりに素朴に構成すると、テストファイルごとに …
warp はRustのWebサーバーフレームワークの1つです。
gRPCフレームワークの Tonic と同じhyperの上に構築されています。
warpの特徴は、 Filter を用いたルーティング …
モック関数実装用のcrateに mockall があります。
mockallで実装できる関数であれば積極的に利用できますが、現状async traitへの対応にやや難があるのと、テスト時にトレイトオブ …
Rustのロギングには、 log と env_logger の組み合わせが便利です。
ほかの言語と同様、error, warn, info, debug, traceといったログレベル別のログ出力、表 …
Tonic を用いてgRPC開発する際、サーバープロセスの構築以外に、protobufを適切に組込むことが必要になります。
Tonicの場合は、 PROST! を利用しており、protocコマンドで …
2020年末に Tokio 1.0 がリリースされました。Rustの非同期ランタイムのデファクトライブラリです。
HyperやTower、TonicといったHTTPのライブラリの下層で利用されているた …
Rustの構造体で、nullableなメンバは以下のようにOption型を利用する記述になります。
struct Friend { name: Option<String> } let john = …
Rustには異常な状態を取り扱うための、Result<T,E>型とOption<T>型があり、関数型プログラミングで一般的な処理フローを実装できます。
この2つの型は、似たような構造になっていますが、 …
Rustで機能実装するとファイル単位でmoduleとなり、pubスコープを付けるだけで再利用可能になります。
基本的には、モジュールの集合体(単なるプロジェクトのファイル群)が自然にライブラリになりま …
RustでDB接続するcrate(Rustパッケージ)にはいくつかのプロダクトがありますが、非同期処理を重視した非ORマッパーのcrateとしては、tokio-postgresを使えます。
接続 …