Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloudflare Workers で Rust 選ぶ理由 is 何?
Search
sadnessOjisan
April 13, 2026
33
1
Share
Cloudflare Workers で Rust 選ぶ理由 is 何?
What is Cloudflare Workers で Rust選ぶ理由 ?
sadnessOjisan
April 13, 2026
More Decks by sadnessOjisan
See All by sadnessOjisan
AIエージェントが動かないときの原因とその対処
sadnessojisan
2
120
React のルーター事情
sadnessojisan
1
610
PHPこそ OpenTelemetry が嬉しい
sadnessojisan
2
450
TypeScript、上達の瞬間
sadnessojisan
53
19k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
960
疎通2024
sadnessojisan
5
1.7k
BasicBasic認証
sadnessojisan
5
4.8k
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
21
6.5k
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
38
16k
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
200
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Ethics towards AI in product and experience design
skipperchong
2
280
Designing for humans not robots
tammielis
254
26k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
[SF Ruby Conf 2025] Rails X
palkan
2
1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Skip the Path - Find Your Career Trail
mkilby
1
120
Transcript
Cloudflare Workers で Rust選ぶ理由 is 何? @sadnessOjisan
発売おめ
自己紹介 • sadnessOjisan • インターネット上から消えてしまった人 😢 • ポケカ等のカードゲームにのめり込み すぎて、カードショップで働き始めた •
プログラミング?AI?なんですかそれ
著書の担当部分
SoftWare Design での連載 • 2025/5: HTTP Chaching について ◦ この回、Web配信におけるCDNのリアルなユースケー
スやそもそもキャッシュとは何かという話を初学者向け についてまとめており、結構自信作です。 • 2025/6: Rust SDK について • 2025/8: 初学者向けの CDN ハンズオン
当時エッジに関心があった • 当時は日本の経済についての新聞社で働いて いた • 大量のリクエストを裁く必要があり、キャッシュが 重要 ◦ キャッシュによる負荷軽減と高速な配信 •
一方で有料コンテンツを扱う手前、キャッシュの 出しわけというロジックが実務上どうしても必要 となり、エッジでのコンピューティングに関心
なぜ当時 Rust + Edge というテーマを選んだのか • 前提として、キャリアアップのために Rust を勉強していた •
その上で、Web開発でにおいてEdge上でRustの特性が便利なことに気づいた
Rust と Cloudflare について • そもそも Cloudflare Workers は V8
が中核 にあるため Wasm が動いてしまう • あるとき、workers-rs という公式サポートが 得られた • workers-rs は SDK だけでなく HTTP ルー ターも提供しており、これを利用 • あるとき、http クレートに対応してしまったせ いで、うっかり Axum(デファクトなフレーム ワーク) が動いてしまった ◦ (実は前途多難な事情もあるので詳しくは https://blog.ojisan.io/cf-axum-muriyari/ )
Rust で書ける環境は整ったがモチベーションは? • Rustは安全 ◦ と言われているが、TypeScriptでよくね? • Rustはハイパフォーマンス ◦ と言われているが、JSでもよくね?Web
開発するなら Rust 使ってもコピーだらけでは ... • RustはGCがない ◦ ネットワークのレイテンシーに比べたら誤差なのでは? • Rustにしかないライブラリが動く ◦ それはそうだけど、Web周りで具体的なユースケースって何かある? どれもぱっとしない気がする...?
一番の利点: ちりつも • 正直 Rust/Wasm で書くメリットは薄いと著者は感じるが、CDNは全リクエストが通 過するポイントであり、ほんとのちょっとの改善が、塵も積もれば山となるのである • CPUを使う処理は JS
よりも Wasm 使う方が良さそう • リソース管理がつきまとうので メモリ利用量は小さく、予測もしやすい • そもそもEdgeコンピューティングは富豪的なアプローチができない
Edgeでの代表的な処理: キャッシュの出しわけ • 有料コンテンツの配信をキャッシュに乗せると、課金せずともみれてしまいそう? • それを防ぐためにキャッシュの出しわけを行う(Varyヘッダーなど使うと容易) • どのユーザーがどの属性か識別し、尚且つなりすましを防ぐためには、Edge上で 認可の仕組みが必要 •
認可はCPUを使う処理であり、パフォーマンスが出る言語を採用するのがお得で はある。(が、一般的な認可はNode.jsでもネイティブモジュールで対応できるので、 単体で劇的な性能劣後があるわけではないことに留意
Edgeでの代表的な処理: レスポンスの書き換え • Edgeが全リクエストの通り道としたとき、ここで何かリクエスト・レスポンスを書き換 えたいと言う欲求がいつかは出てくる ◦ 特定ユーザー属性の人にだけバナーを出したい ◦ オリジンサーバーで書き換えればいいやん? ◦
エッジを垂直分割のロードバランサーとして使っている場合は全サービスにその対応するの?しな いよね? • このときレスポンスを変換する処理はCPUを使う処理になるのでWasmの方が有 利になりやすい
Wasmを生成する言語としてのRust • Wasmを生成する一番賢い方法はwat(wasm テキスト形式)を手書き • なのですが、人類には早いので、何かしらの言語を使いましょう • 良い文法を持っていて、GCの無い言語を選ぶとRustが良さそう?
結論: Cloudflare Workers を何で実装するか • 別になんでも良さそう • Edgeだからこその、CPUを使う処理というのは存在しており、パフォチューは無視 できないトピックではある •
アクセス数が多すぎたりして少しのパフォチューに価値が出るなら、Wasmを使う方 法を追求したら良さそう • Wasmの生成言語としてはRustが良さそう • けどJSで書いても普通は困らなさそう。というか困ってる話を聞いたことがない。