Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

対応している crate

最終更新 Markdown で表示Agent セットアップ

背景

workers-rs(場合によっては wasm-bindgen だけ)を使って WebAssembly で Workers を書くとき、Workers 上で動作することが確認されている主要な Rust crate を紹介します。 各 Rust crate の例には、必要なカスタム設定も記載しています。

これは網羅的な一覧ではありません。多くの Rust crate は、Workers が対応する wasm32-unknown-unknown ターゲットにコンパイルできます。 場合によっては、デフォルト機能を無効にするか、Wasm 固有の機能を有効にする必要があります。新しい依存関係を追加すると、Worker の サイズ が大きく増えることがある点に注意してください。

time

Wasm 向けに調整された多くの crate は、std::time の代わりに time crate を使います。time crate を Wasm で動かすには、JavaScript から時刻情報を取得するために wasm-bindgen 機能を有効にする必要があります。

tracing

トレーシングは、tracing-web crate と、tracing-subscribertime 機能で有効にできます。 Workers には タイマーの制限 があるため、I/O を含まない span は開始時刻と終了時刻が同じになります。

詳細は tracing の例 を参照してください。

reqwest

reqwest ライブラリ は Wasm にコンパイルでき、wasm-bindgen を使って JavaScript の fetch API に自動で接続します。

tokio-postgres

tokio-postgres は Wasm にコンパイルできます。workers-rsSocket を使うよう設定する必要があります。

詳細は tokio-postgres の例 を参照してください。

hyper

hyper crate には、低レベルの conn モジュールと、より高レベルの Client という 2 つの HTTP クライアントがあります。 conn モジュールは Workers の Socket と一緒に使えます。一方 Client は、まだ Wasm 向けではないタイマー依存関係を必要とします。

詳細は hyper の例 を参照してください。

役に立ちましたか?