📘

Rustでよく利用されているライブラリの紹介を行ってみるテスト

2024/02/23に公開

Rustでよく使われているライブラリの紹介などを行ってみます。

Rustの実装には定番パターンがあって、大抵よく使われているライブラリがそのままよく使われています。

なので例えばコマンドラインツールを作りたい場合は、大抵の場合clapが利用されています。

具体的にはGitHubのrust topicsで人気のあるアプリやライブラリでよく使われているCrateの紹介となります。

非常によく使われているのはanyhowserdeclapなどなど。

コマンドライン関連

  • clap
    • cliのパーサーライブラリ、ほぼ一強。derive機能などもあって非常に便利。 過去にはstructoptとかもありましたが、お亡くなりになりました

エラー処理関連

  • anyhow
    • エラー処理関連を柔軟に行ってくれるライブラリ、GitHubでStar数の多いアプリケーション関連だと大抵利用されています。 なぜ使うかって?エラー処理が面倒だからだってさ
  • thiserror
    • エラーの型などを簡潔に定義するためのライブラリ、大抵error.rsといったファイルなどで 利用されています

API関連

  • reqwest
    • とりあえずAPI関連処理なりAPI Clientを作りたい場合reqwestを作るという風潮

ログ関連

RustのLog周りは結構変わっていて、logというfacadeライブラリ + facadeを実装するライブラリ、例えばenv_loggerを利用して使うという感じになっています。

非同期関連だとTracingを使う感じです。

エンコーディング関連

  • serde
    • 様々なフォーマット、例えばjson, tomlに対応したSerializin、DeSerializingフレームワーク

時間日付関連

  • chrono
    • time とかもありますが、とりあえずchrono

Web開発関連

Web開発に関すると、様々な選択肢があるのですが人気があるのはaxumですね。

それ以外にもactixなどの選択肢がありますが、詳しい情報を知りたい場合Rustのバックエンドサービス支援を行っているサービスのshuttleのドキュメントなり、ブログを読むことをオススメします。

ちなみにRustでのWeb開発に興味のある人はcch23をすることをオススメします。

DB関連

DB関連はとりあえずSQLxを使うと基本的なことは大抵でできます。ORMを利用したい場合、SeaORMやDieselなど選択肢がありますね。

非同期関連

  • crossbeam
    • 非同期関連ツール
  • rayon
    • iterの並列処理したいってさ

Util

  • regex
    • 正規表現を扱うライブラリ
  • url
    • urlのパースライブラリ
  • tempfile
    • 一時ファイルを取り扱うライブラリ
  • once_cell
    • 初期化処理関連ライブラリ

git関連

  • git2
    • Rustのアプリではgit関連の処理をしているケースも多いです

画像処理

  • image
    • 画像のencode/decodeを行うライブラリ
  • resvg
    • svgのレンダリングライブラリ

圧縮関連

  • tar
    • tarの処理を行うライブラリ
  • flate2
    • zlib、gzip関連の処理を行うライブラリ

Discussion