Rustでクッキング
この Rust Cookbook は、Rustエコシステムのクレートを使って、 一般的なプログラミングタスクを達成するための良い実践を示す シンプルな例を集めたものです。
本書の読み方、例の使い方、慣例に関する注意事項を含む Rust Cookbook の詳細を参照してください。
コントリビューション
このプロジェクトは、新しいRustプログラマーでも 貢献しやすく、Rustコミュニティに参加しやすいものに することを意図しています。支援を必要としており、歓迎しています。詳細は CONTRIBUTING.md を参照してください。
アルゴリズム
| レシピ | クレート | カテゴリ |
|---|---|---|
| 乱数を生成する | ||
| 範囲内の乱数を生成する | ||
| 指定した分布の乱数を生成する | ||
| カスタム型のランダムな値を生成する | ||
| 英数字の文字セットからランダムなパスワードを作成する | ||
| ユーザー定義文字のセットからランダムなパスワードを作成する | ||
| 整数のベクタをソートする | ||
| 浮動小数点数のベクタをソートする | ||
| 構造体のベクタをソートする |
コマンドライン
| レシピ | クレート | カテゴリ |
|---|---|---|
| コマンドライン引数を解析する | ||
| ANSI ターミナル |
圧縮
並行処理
暗号
データ構造
| レシピ | Crates | カテゴリ |
|---|---|---|
| ビットフィールドとして表現された型を定義して操作する |
データベース
日付と時刻
| レシピ | クレート | カテゴリ |
|---|---|---|
| 経過時間を測定する | ||
| 検査付きの日付と時刻の計算を実行する | ||
| ローカル時刻を別のタイムゾーンに変換する | ||
| 日付と時刻を調べる | ||
| 日付を UNIX タイムスタンプに変換し、その逆も行う | ||
| 書式設定された日付と時刻を表示する | ||
| 文字列を DateTime 構造体に解析する |
開発ツール
デバッグ
バージョニング
| レシピ | クレート | カテゴリ |
|---|---|---|
| バージョン文字列を解析してインクリメントする | ||
| 複雑なバージョン文字列を解析する | ||
| 指定したバージョンがプレリリースかどうかを確認する | ||
| 指定した範囲を満たす最新バージョンを見つける | ||
| 外部コマンドのバージョンが互換性要件を満たすか確認する |
ビルド時
| レシピ | クレート | カテゴリ |
|---|---|---|
| 同梱された C ライブラリを静的にコンパイルしてリンクする | ||
| 同梱された C++ ライブラリを静的にコンパイルしてリンクする | ||
| カスタム定義を設定しながら C ライブラリをコンパイルする |
エンコーディング
ファイルシステム
ハードウェアサポート
| レシピ | クレート | カテゴリ |
|---|---|---|
| 論理 CPU コア数を確認する |
メモリ管理
| レシピ | クレート | カテゴリ |
|---|---|---|
| 遅延評価される定数を宣言する | ||
| Std::cell | ||
std::cell:LazyCell | ||
std::sync::LazyLock |
ネットワーキング
| レシピ | クレート | カテゴリー |
|---|---|---|
| 未使用のポートで TCP/IP を待ち受ける |
オペレーティングシステム
| レシピ | クレート | カテゴリ |
|---|---|---|
| 外部コマンドを実行して stdout を処理する | ||
| stdin を渡して外部コマンドを実行し、エラーコードを確認する | ||
| パイプでつないだ外部コマンドを実行する | ||
| 子プロセスの stdout と stderr の両方を同じファイルにリダイレクトする | ||
| 子プロセスの出力を継続的に処理する | ||
| 環境変数を読み取る |
科学
science/mathematics
| レシピ | クレート | カテゴリ |
|---|---|---|
| ベクトルのノルム | ||
| 行列の加算 | ||
| 行列の乗算 | ||
| スカラーとベクトルと行列を乗算する | ||
| 行列の反転 | ||
| 三角形の辺の長さを計算する | ||
| tan が sin を cos で割ったものと等しいことを検証する | ||
| 地球上の 2 点間の距離 | ||
| 複素数の作成 | ||
| 複素数の加算 | ||
| 複素数に対する数学関数 | ||
| 代表値 | ||
| 標準偏差の計算 | ||
| 多倍長整数 |
テキスト処理
| レシピ | クレート | カテゴリー |
|---|---|---|
| Unicode 書記素を収集する | ||
| メールアドレスを検証し、そこからログイン名を抽出する | ||
| テキストから一意な #ハッシュタグ の一覧を抽出する | ||
| テキストから電話番号を抽出する | ||
| 複数の正規表現のマッチに基づいてログファイルをフィルタリングする | ||
| あるテキストパターンのすべての出現箇所を別のパターンに置換する。 | ||
カスタム struct に FromStr トレイトを実装する |
Webプログラミング
Webページのスクレイピング
Uniform Resource Location(URL)
| レシピ | クレート | カテゴリ |
|---|---|---|
文字列から Url 型へURLを解析する | ||
| パスセグメントを削除してベースURLを作成する | ||
| ベースURLから新しいURLを作成する | ||
| URLのオリジン(scheme / host / port)を抽出する | ||
| URLからフラグメント識別子とクエリペアを削除する |
メディアタイプ(MIME)
クライアント
Web認証
| レシピ | クレート | カテゴリ |
|---|---|---|
| Basic認証 |
フルスタックWeb
| レシピ | クレート | カテゴリ |
|---|---|---|
| フィルタリングされた結果をHTMLとして返す | ||
| コンポーネントの状態をサーバーと同期する |